【问题标题】:Can't rename all files in a directory无法重命名目录中的所有文件
【发布时间】:2013-08-20 22:53:36
【问题描述】:

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

【问题讨论】:

    标签: python file rename dir


    【解决方案1】:

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

    你需要换行:

    os.rename(files[i],new)
    

    成为:

    os.rename(os.path.join(path,files[i]),os.path.join(path,new))
    

    【讨论】:

      【解决方案2】:

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

      os.chdir(path)
      

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

      附带说明一下,您的循环可能会更简单一些。这应该做同样的事情:

      for x in files:
        new = 'DSC0%d' %(num)   
        os.rename (x, new)
        num +=1
      

      【讨论】:

        猜你喜欢
        • 2014-05-16
        • 2015-02-28
        • 2014-11-08
        • 2014-10-09
        • 2014-11-29
        • 1970-01-01
        • 2014-12-30
        • 2023-03-25
        • 2010-12-29
        相关资源
        最近更新 更多