所以我有一个清单如下:
mylist = ['movie1.mp4','movie2.srt','movie1.srt','movie3.mp4','movie1.mp4']
注意:一个简单的列表测试,脚本将处理未知的文件名和更多的文件名。在
所以我想找到一个带有成对srt文件的电影文件,并把它们放到字典中。剩下的任何内容(如movie3.mp4)将保留在列表中,稍后处理。在
我一直在玩列表理解,虽然它可能不会留下剩余的数据,并允许我构建字典。在
import re
matches = [ x for x, a in mylist if (re.sub('\.srt$', '\.mp4$', a ) == x or re.sub('\.srt$', '\.mp4$', a ) == x) ]
这将返回:
ValueError: too many values to unpack
我该怎么办?在
你对你的问题采取了错误的方法。最简单的方法是使用os.path.splitext确定文件的基名,并根据它对它们进行分组。一种可能的方法是使用itertools.groupby
实施
示例
^{pr2}$我将任务分成几个独立的关注点:首先构建字典,用相同的根名称分组文件;然后检查哪些文件同时具有视频和字幕文件。(请不要使用regex来分割文件名,
os.path
在这里做得更好)。在另外,你打算如何处理带有附加字幕的
.mkv
文件?;)相关问题 更多 >
编程相关推荐