[英]Renaming files in Python: No such file or directory
如果我尝试重命名目录中的文件,由于某种原因,我会收到错误消息。 我认为问题可能是我没有以正确的格式插入目录?
附加信息:python 2和linux机器
OSError:[Errno 2]没有这样的文件或目录
尽管它可以打印目录内容。 我究竟做错了什么?
import os
for i in os.listdir("/home/fanna/Videos/strange"):
#print str(i)
os.rename(i, i[:-17])
os.rename()
需要您要重命名的文件的完整路径。 os.listdir
仅返回目录中的文件名。 尝试这个
import os
baseDir = "/home/fanna/Videos/strange/"
for i in os.listdir( baseDir ):
os.rename( baseDir + i, baseDir + i[:-17] )
假设有一个文件/home/fanna/Videos/strange/name_of_some_video_file.avi
,并且您正在/home/fanna
运行脚本。
i
是name_of_some_video_file.avi
(文件名,不包括文件的完整路径)。 所以当你跑步
os.rename(i, i[:-17])
你是说
os.rename("name_of_some_video_file.avi", "name_of_some_video_file.avi"[:-17])
Python不知道这些文件来自/home/fanna/Videos/strange
。 它根据当前工作目录解析它们,因此它正在寻找/home/fanna/name_of_some_video_file.avi
。
我有点晚了,但是发生的原因是os.listdir
仅列出了该目录中的项目,但是工作目录仍然是python脚本所在的位置。
因此,要解决此问题,请添加:
os.chdir(your_directory_here)
就在for循环之前,其中your_directory_here
是用于os.listdir
的目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.