我试图遍历子目录的列表,然后打开该子目录中的文件并将文件重命名为小写。这是我的代码:
for root, subdirs, pics in os.walk(rootdir):
for pic in pics:
if pic.endswith('.jpg'):
picpath = os.path.join(pic)
#print pic
print picpath
#os.rename(pic, pic.replace(" ", "-").lower())
os.rename(picpath, picpath.replace(" ", "-").lower())
然后我得到:
Traceback (most recent call last): File "imageresizing-renamefiles.py", line 19, in os.rename(picpath, picpath.replace(" ", "-").lower()) OSError: [Errno 2] No such file or directory
我的文件结构是一个根目录,在这个目录中运行的代码如下所示
folder1
与Image1jpg
和Image2jpg
,folder2
与{
谢谢你的帮助。在
看来它应该能胜任。根据the docs
这就是为什么你会得到一个“没有这样的文件”错误:你要求的是当前目录中的文件名,而在错误发生的时候这个文件名不是{}。在
您必须将目录名附加到路径中,否则
os.rename
找不到要应用重命名的正确目录。在也就是说,你的小写转换会使任务复杂化。小写字母必须只应用于basename(在Windows文件系统上这是可行的,因为大小写无关紧要,但在Linux上,如果路径的某些目录包含大写字母,则会失败:幸运的是,您不能用一个
rename
命令重命名整个dirtree)无论大小写,
.jpg
扩展名的匹配都应该完成,特别是如果您想将图片名称转换为小写:扩展名也可能是大写的(就像所有那些DCIM相机一样)相关问题 更多 >
编程相关推荐