我只想更改整个目录中的文件名。使用os.listdir的单个目录的代码是可靠的,但是当我向os.walk移动时,它失败了。
import os
rootFolder = "C:/Users/.../Desktop/Docs"
for folder in os.walk(rootFolder):
for filename in folder:
os.rename(filename, filename[4:])
最后一行给了我一个错误"系统无法找到指定的路径" 任何人都可以帮帮我吗?如此接近......
答案 0 :(得分:0)
如果您使用这些文件的完整路径名,您的代码将起作用。如果您将os.walk
与dirpath
合并,则可以从filename
获取完整路径名。方法如下:
import os
root_folder = "C:/Users/.../Desktop/Docs"
for dirpath, dirnames, filenames in os.walk(root_folder):
for fname in filenames:
full_fname = os.path.join(dirpath, fname)
renamed = os.path.join(dirpath, fname[4:])
os.rename(full_fname, renamed)
使用重命名文件的完整路径名也很重要。否则,文件将被移动到您运行Python解释器的目录。
请注意,在第三行代码中,我使用 tuple unpacking (或序列解包,正如文档所称的那样)。