081911-783-carib-whole_hd1.wmv
这种文件名想必很多人都很熟悉……这几天在写一个脚本,识别当前目录这类文件名,然后连上官网查找发行日期、演员名字和标题,然后改名为:日期+演员+标题.wmv。如果是两个片段,如hd1和hd2,就在尾部分别加上1和2序号。
没有加入双片段识别功能之前,运行很正常,但是加入之后就只能识别改名一个文件,然后就出错退出,直接再次运行还是改完一个文件名后出错退出。调了好久不知道什么问题,请大家帮忙看看是怎么回事,指点一下,谢谢啦!
我用的是OS X 10.8 + Python3。源码中filename是日期+演员+标题,date是日期。re.match('._')那里是我在出错后自己加的,因为看提示好像是先找到了一个'._'开头的文件,然后改名时这文件没了所以出错,但是没什么效果,运行后还是一样的提示。
出错信息如下:
081911-783-carib-whole_hd1.wmv
081911-783
._081911-783-carib-whole_hd1.wmv
081911-783
Traceback (most recent call last):
File "/Users/ouankou/Dropbox/Work/Current/
caribrenamer.py", line 42, in <module>
finalname()
File "/Users/ouankou/Dropbox/Work/Current/
caribrenamer.py", line 40, in finalname
os.rename(file, filename)
OSError: [Errno 2] No such file or directory
改名部分源代码如下:
def finalname():
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*' + '-carib' + '*'):
if re.match('.-', file):
break
print (file)
idend = re.compile('-carib')
idpos = idend.search(file)
movieid = file[(idpos.start()-10):idpos.start()]
print (movieid)
filename, date = getinfo(movieid)
if re.search('hd2', file):
for prefile in os.listdir('.'):
if fnmatch.fnmatch(prefile, '*' + date + '*'):
newname = prefile[0:(len(prefile)-4)] + ' 1.wmv'
os.rename(prefile, newname)
filename = filename + ' 2.wmv'
else:
filename = filename + '.wmv'
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/45290
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.