无法重命名目录中的所有文件

时间:2013-08-19 07:48:17

标签: python file rename dir

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

2 个答案:

答案 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))