在Python中重命名文件:WindowsError:[错误2]系统找不到指定的文件

时间:2014-01-23 00:19:56

标签: python rename file-rename batch-rename

我看过这里的代码,看起来并不那么难。

Can't resolve WindowsError: [Error 2] The system cannot find the file specified

但是,它在我的情况下不起作用。我在这里对Python很新。我正在重命名文件夹而不是文件。然后,每个文件夹都有一些需要重命名的文件。

以下是目前重命名目录中文件夹的内容:

import os
from os import rename, listdir

path = r"E:\myFolder"
dirList = os.listdir(path)
print str(dirList)

for name in dirList:
    nameOrig = (name[0:(len(name)-12)])
    nameRename = nameOrig + "City"
    os.rename((os.path.join(path, nameOrig), os.path.join(path, nameRename))

非常感谢

2 个答案:

答案 0 :(得分:0)

1)我不确定(name[0:(len(name)-12)])正在做什么...... name应该是要重命名的目录本身的名称,我推断是nameOrig

2)os.rename((os.path.join(path, nameOrig), os.path.join(path, nameRename))括号不平衡。错字?

如果我从rename函数调用的开头删除一个打开的paren,这适用于重命名我的目录中的内容。并设置nameOrig = name

*注意,我使用的是Linux版本的Python,它可能会也可能不会以不同的方式处理目录列表中的结果

答案 1 :(得分:0)

非常感谢你的帮助。吉姆是对的,我需要在最后一行使用'name'而不是'nameOrig'。并且感谢Ryan J抓住了额外的paren

的行

nameOrig =(name [0:(len(name)-12)])

假设取出最后12个字符并用新名称替换它。在这种情况下,它是'城市'

所以我有名为

的文件夹名称

031_Indianapolis 032_Indianapolis 033_Indianapolis 034_Indianapolis ......等等......

我换了 031_City 032_City 033_City 034_City ....

以下是最终代码:

导入操作系统 来自os import rename,listdir

path = r“E:\ myFolder” dirList = os.listdir(path) print str(dirList)

表示dirList中的名称:     nameOrig =(name [0:(len(name)-12)])     nameRename = nameOrig +“City”     os.rename(os.path.join(path,name),os.path.join(path,nameRename))

打印“/ n全部处理”