[英]Having trouble with Python os.rename() in my batch file renaming and moving script
到目前为止,这是我的批处理文件重命名和移动脚本
import os, re, shutil, random
mainpath = 'C:\\Users\\s3z\\Desktop\\pytest'
dirs = [d for d in os.listdir('.') if os.path.isdir(d)]
for index, name in enumerate(dirs):
subpath = name
os.chdir(name)
images = [i for i in os.listdir('.') if i[-4:] in ('.png', '.jpg', 'jpeg')]
basename = re.sub(r'\W+', '', name[0:10])
randid = str(random.uniform(0,1))[-4:]
for index, f in enumerate(images):
path = os.path.join(mainpath, subpath)
if f[-4:] == 'jpeg':
ext = '.jpeg'
else:
ext = f[-4:]
os.rename(os.path.join(path, f), os.path.join(path, basename + '_' + randid + '_' + str(index) + ext)
shutil.move(f, '..\..\COMMON')
os.chdir(os.pardir)
我遇到os.rename()
函数的问题。 当我运行脚本时,我得到了
File "bulk_image_organizer.py", line 19
shutil.move(f, '..\..\COMMON')
^
SyntaxError: invalid syntax
当我拿出第19行
shutil.move(f, '..\\..\\COMMON')
并尝试再次运行它错误更改为
File "bulk_image_organizer.py", line 19
os.chdir(os.pardir)
^
SyntaxError: invalid syntax
但是当我删除os.rename()
行时,脚本运行正常。 此外,当我在for循环中运行Python解释器中的os.rename()
行时,如下所示
>>> for index, f in enumerate(images):
... os.rename(os.path.join(path, f), os.path.join(path, "new" + st
r(index) + ".jpg"))
...
它工作正常。 那么我的剧本中会出现什么问题呢?
该问题与os.rename
或os.chdir
。 你之前错过了一行中的右括号:
os.rename(os.path.join(path, f),
os.path.join(path, basename + '_' + randid + '_' + str(index) + ext)
# ^
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.