在 Python 中重命名文件:WindowsError: [错误 2] 系统找不到指定的文件
Posted
技术标签:
【中文标题】在 Python 中重命名文件:WindowsError: [错误 2] 系统找不到指定的文件【英文标题】:rename files in Python: WindowsError: [Error 2] The system cannot find the file specified 【发布时间】:2014-02-13 08:04:19 【问题描述】:我看过这里的代码,看起来并不难。
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))
非常感谢
【问题讨论】:
如果在第 6 行没有打印语句的情况下出现错误消息,我会怀疑您没有名为 E:\myFolder 的文件夹。你有吗? 或者你的重命名没有使用文件的实际名称,所以我预计它会失败。请注意,对于名为 foo456789012345 的文件,重命名调用会尝试将 E:\myFolder\foo 重命名为 E:\myFolder\fooCity 在最后一行,您不应该使用 name 而不是 nameOrig 吗? 【参考方案1】:1) 我不确定(name[0:(len(name)-12)])
在做什么...name
应该是要重命名的目录本身的名称,我推断它是nameOrig
2) os.rename((os.path.join(path, nameOrig), os.path.join(path, nameRename))
有不平衡的括号。错别字?
如果我从 rename
函数调用的开头删除一个打开的括号,这适用于重命名目录中的内容。并设置nameOrig = name
*注意,我使用的是 Linux 版本的 Python,它可能会或可能不会以不同方式处理 dir 列表中的结果
【讨论】:
【参考方案2】:非常感谢您的帮助。 Jim 是对的,我需要在最后一行使用“name”而不是“nameOrig”。并感谢 Ryan J 抓住了额外的父母
上面写着的那一行
nameOrig = (name[0:(len(name)-12)])
假设取出最后 12 个字符并用新名称替换它。在这种情况下,它是“城市”
所以我将文件夹名称命名为
031_印第安纳波利斯 032_印第安纳波利斯 033_印第安纳波利斯 034_印第安纳波利斯 ...等等...
我改为 031_城市 032_城市 033_城市 034_城市 ....
这是最终代码:
导入操作系统 from os import rename, listdir
路径 = r"E:\myFolder" dirList = os.listdir(路径) 打印 str(dirList)
对于 dirList 中的名称: nameOrig = (name[0:(len(name)-12)]) nameRename = nameOrig + "城市" os.rename(os.path.join(path, name), os.path.join(path, nameRename))
print "/n 全部处理"
【讨论】:
以上是关于在 Python 中重命名文件:WindowsError: [错误 2] 系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中重命名文件:WindowsError: [错误 2] 系统找不到指定的文件
tkinter 是不是在 Python 3.9.0b3 中重命名?