Python 递归文件重命名
Python recursive file renaming
我是 python 的新手,我正在尝试创建一个 python 脚本,该脚本能够递归重命名目录(包括子目录)中的每个文件。但是每次我 运行 脚本我都会收到错误
OSError: [Errno 2] 没有那个文件或目录
该目录包含一些文本文件和一个包含一些其他文件的文件夹。
有谁知道为什么总是这样?
代码:
import os
path = "example path here"
new_filename= ""
i = 0
filenames = os.listdir(path) # is this line needed?
for dir,subdir,listfilename in os.walk(path):
for filename in listfilename:
i += 1
new_filename = 'filename' + str(i)
src = os.path.join(path, filename)
dst = os.path.join(path, new_filename)
os.rename(src, dst)
我相当确定问题源于您加入了 "path" 变量的新路径,而不是从 walk
.
返回的当前目录
import os
path = "example path here"
new_filename= "" # This isn't C, we don't need to pre-declare a variable.
i = 0
filenames = os.listdir(path) # is this line needed? # not that I can see, no
for dir,subdir,listfilename in os.walk(path):
for filename in listfilename:
i += 1
new_filename = 'filename' + str(i)
src = os.path.join(dir, filename) # NOTE CHANGE HERE
dst = os.path.join(dir, new_filename) # AND HERE
os.rename(src, dst)
您应该去阅读 os.walk 的文档,我不确定您是否完全理解它的作用?
此外,不要调用变量 dir
,它会屏蔽同名的内置函数。
此外,您不需要在循环外预先声明 path
。
我是 python 的新手,我正在尝试创建一个 python 脚本,该脚本能够递归重命名目录(包括子目录)中的每个文件。但是每次我 运行 脚本我都会收到错误
OSError: [Errno 2] 没有那个文件或目录
该目录包含一些文本文件和一个包含一些其他文件的文件夹。
有谁知道为什么总是这样?
代码:
import os
path = "example path here"
new_filename= ""
i = 0
filenames = os.listdir(path) # is this line needed?
for dir,subdir,listfilename in os.walk(path):
for filename in listfilename:
i += 1
new_filename = 'filename' + str(i)
src = os.path.join(path, filename)
dst = os.path.join(path, new_filename)
os.rename(src, dst)
我相当确定问题源于您加入了 "path" 变量的新路径,而不是从 walk
.
import os
path = "example path here"
new_filename= "" # This isn't C, we don't need to pre-declare a variable.
i = 0
filenames = os.listdir(path) # is this line needed? # not that I can see, no
for dir,subdir,listfilename in os.walk(path):
for filename in listfilename:
i += 1
new_filename = 'filename' + str(i)
src = os.path.join(dir, filename) # NOTE CHANGE HERE
dst = os.path.join(dir, new_filename) # AND HERE
os.rename(src, dst)
您应该去阅读 os.walk 的文档,我不确定您是否完全理解它的作用?
此外,不要调用变量 dir
,它会屏蔽同名的内置函数。
此外,您不需要在循环外预先声明 path
。