繁体   English   中英

在Python中重命名文件:无此类文件或目录

[英]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运行脚本。

iname_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM