文件重命名循环不起作用
Filerenaming loop not functioning
我无法理解为什么我的代码不起作用。
我想按如下顺序重命名特定文件夹中的每个文件:
Foldername_1
Foldername_2
Foldername_3
等...
我编写的代码应该在每次重新循环 for 循环时将 'num' 变量增加 1。
path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
num = 0
num = num + 1
name = "Foldername_{}".format(num)
os.rename(filename, "{}".format(name))
但是我收到了这个错误:
FileExistsError: [WinError 183] Cannot create a file when that file
already exists: '90' -> 'Foldername_1'
您正在将每次迭代num
设置为 0 。将循环的num = 0
移出:
num = 0
for filename in filenames:
num = num + 1
name = "Foldername_{}".format(num)
os.rename(filename, "{}".format(name))
您不需要再次格式化name
变量; "{}".format(name)
生成与 name
中已有的字符串相同的字符串。而不是手动增加一个数字,您可以使用 enumerate()
function 为您生成数字:
for num, filename in enumerate(filenames, 1):
name = "Foldername_{}".format(num)
os.rename(filename, name)
考虑到 os.listdir()
没有按字母顺序列出名字;相反,您将获得基于磁盘目录结构的订单,这取决于创建的订单文件和确切的文件系统实现。您可能需要手动排序:
for num, filename in enumerate(sorted(filenames), 1):
我无法理解为什么我的代码不起作用。 我想按如下顺序重命名特定文件夹中的每个文件: Foldername_1 Foldername_2 Foldername_3 等...
我编写的代码应该在每次重新循环 for 循环时将 'num' 变量增加 1。
path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
num = 0
num = num + 1
name = "Foldername_{}".format(num)
os.rename(filename, "{}".format(name))
但是我收到了这个错误:
FileExistsError: [WinError 183] Cannot create a file when that file already exists: '90' -> 'Foldername_1'
您正在将每次迭代num
设置为 0 。将循环的num = 0
移出:
num = 0
for filename in filenames:
num = num + 1
name = "Foldername_{}".format(num)
os.rename(filename, "{}".format(name))
您不需要再次格式化name
变量; "{}".format(name)
生成与 name
中已有的字符串相同的字符串。而不是手动增加一个数字,您可以使用 enumerate()
function 为您生成数字:
for num, filename in enumerate(filenames, 1):
name = "Foldername_{}".format(num)
os.rename(filename, name)
考虑到 os.listdir()
没有按字母顺序列出名字;相反,您将获得基于磁盘目录结构的订单,这取决于创建的订单文件和确切的文件系统实现。您可能需要手动排序:
for num, filename in enumerate(sorted(filenames), 1):