0

我需要将所有文件重命名为'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
4

2 回答 2

2

您必须先更改到正确的目录。所以把它放在for-loop 前面:

os.chdir(path)

如果您的 python 脚本在另一个目录中,那将是工作目录,并且由于您只有文件名而不是绝对文件路径,因此无法在该工作目录中解析文件。因此,更改为它可以解决您的问题。

作为旁注,您的循环可能会更简单一些。这应该做同样的事情:

for x in files:
  new = 'DSC0%d' %(num)   
  os.rename (x, new)
  num +=1
于 2013-08-19T07:59:42.333 回答
0

问题是您为rename函数提供了相对路径,但您可能从不同的位置执行代码。您可以将当前文件夹更改os.chdir为上一个答案。或者,如果您想保留在原始文件夹中,您可以通过以下方式提供完整路径:

您需要更改行:

os.rename(files[i],new)

成为:

os.rename(os.path.join(path,files[i]),os.path.join(path,new))
于 2013-08-19T14:27:25.257 回答