我需要将所有文件重命名为'DSC0 + num'
,因此文件的最终名称应为(例如)'DSC02015'
尝试过的代码:
import os
path = "C:\\images"
num = 2000
i=0
files = os.listdir(path)
for x in files:
old = files[i]
new = 'DSC0%d' %(num)
os.rename (files[i],new)
num +=1
i +=1
我收到了这个错误:
Traceback <most recent call last):
File "rename.py", line 10, in <module>
os.rename (files[i],new)
WindowsError: [Error 2] The system cannot find the file specified
答案 0 :(得分:2)
您必须先更改到正确的目录。所以把它放在for
- 循环:
os.chdir(path)
如果你的python脚本在另一个目录中,那将是工作目录,因为你只有文件名而不是绝对文件路径,所以无法在该工作目录中解析这些文件。因此更改它可以解决您的问题。
作为旁注,你的循环可能会更简单一些。这应该做同样的事情:
for x in files:
new = 'DSC0%d' %(num)
os.rename (x, new)
num +=1
答案 1 :(得分:0)
问题是您向rename
函数提供了相对路径,但您可能从不同的位置执行代码。
您可以使用os.chdir
更改当前文件夹作为上一个答案。
或者,如果您想留在原始文件夹中,您可以通过以下方式提供完整路径:
您需要更改一行:
os.rename(files[i],new)
是:
os.rename(os.path.join(path,files[i]),os.path.join(path,new))