繁体   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