簡體   English   中英

Python:如何將兩行之間的文本讀取為字符串

[英]Python: How to read text between two empty lines into a string

我是編程和Python的初學者,我正在編寫一個腳本來處理.srt字幕文件。 我的問題是我不知道該怎么做:通讀文件,然后首先在文本開頭和第一個空行之間分析文本,然后在該空行和下一個空行之間分析文本,直到文件結尾( “分析”,例如計算一部分的長度,將另一部分轉換為數字,等等。

您可以閱讀有關.srt格式規范的信息,並在此處查看示例(類型:Plain); 文件末尾有一個空行。 我想將每個字幕的顯示時間/持續時間與其中的字符數進行比較。 從文件開頭開始,每個字幕(及其編號,持續時間信息和文本)與下一個字幕之間用空行(“ \\ n”)隔開,我可以用sth來找到它們,例如, if "\\n" in line and len(line) == 2: 時間碼始終包含“->”,並且始終以三位數字結尾,因此,如果在字符串中包含該時間碼,則可以弄清楚它在哪里。 問題是,我需要采取以下措施:

  1. 閱讀字幕文本(可以是1-3行並帶有換行符),並計算其字符長度。

  2. 讀取持續時間,轉換為以秒為單位的持續時間。

  3. 讀取行號(以便將其輸出到我的結果中,例如“行44的持續時間為4.54 s”)。

我可以輕松地進行第二個操作,但是我不確定如何遍歷整個文件並告訴Python:找到每個字幕文本的結尾,計算每行中字符的長度,添加,讀取持續時間,除以這些,輸出該行號,然后對下一個字幕執行相同操作,直到到達文件末尾。 如果是一個字幕,我可以輕松實現,但是我不確定如何對單個字幕進行檢查然后尋找下一個字幕。 我一直在尋找2個小時,找不到類似的東西。

正則表達式可以是幫助解決此類處理的強大工具。 您可以使用正則表達式來匹配或解析單個記錄或針對整個文件。 如果您不了解python中的Regex,我強烈建議您做一些關於該主題的教程...這應該給您很多思路,如何將其應用於您的問題。

關於該主題有很多參考文獻,但這里只是其中的一個: http : //www.diveintopython.net/regular_expressions/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM