簡體   English   中英

使用正則表達式檢查文件擴展名

[英]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.

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