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