python oserror errorno 39_请教Python问题:'OSError: [Errno 2] No such file or directory'

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

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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值