[英]Check file extensions with Regex
我正在編寫一個腳本,使用正則表達式根據字幕文件來更改視頻文件的名稱。
for files in curDir:
if re.search(r'.*[.srt]$',files): #1
print files;
if re.search(r'.*[^.srt]$',files): #2
print files;
在執行過程中,我發現#1
if條件連續執行,以便打印所有.srt
文件,然后僅#2
如果條件執行且所有視頻文件都打印了。
不應如果那些條件來交替地針對每個被執行files
狀的第一#1
,然后#2
?
我認為我的問題是re.search
返回結果的方式。 因此,我需要幫助來依次訪問每個文件的if條件。
您不需要Regex來檢查文件名是否以.srt
結尾。 str.endswith
將很容易做到這一點:
for files in curDir:
if files.endswith('.srt'): # Filename ends in .srt
...
else: # Filename does not end in .srt
...
僅當您有復雜的模式要匹配時才使用正則表達式(然后,一定要使用它!)。 否則,應避免使用它,因為它比Python的內置工具慢,並且對不熟悉它的人也有些困難。
抱歉,我無法評論現有答案。 只想指出,最好使用經過微小修改的選定答案中的內容:
for file in curDir:
if file.lower().endswith('.srt'): # Filename ends in .srt
...
else: # Filename does not end in .srt
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.