【发布时间】:2021-01-07 19:55:02
【问题描述】:
我正在编写一个脚本,将 torrent 文件夹重命名为更具可读性的内容... 在某些情况下,我会收到上述错误。
我真的不知道出了什么问题。 我试过了: os.listdir().sort() == originalFolderNames.sort(): 结果是真的,所以我要重命名的内容和目录中的内容匹配 100%。
这是导致此问题的代码:
def renameFolders(self, oldAndNewFolderNames):
foldersToRename = oldAndNewFolderNames[1]
originalFolderNames = oldAndNewFolderNames[0]
dirList = os.listdir()
# Rename folders
for d in dirList:
for i in range(len(foldersToRename)):
if d == foldersToRename[i]:
try:
if foldersToRename[i] != "None":
os.rename(r"{}".format(str(originalFolderNames[i])), r"{}".format(str(foldersToRename[i])))
except Exception as Err:
print(Err)
print("Couldn't rename: {} TO ==> {}".format(originalFolderNames[i], foldersToRename[i]))
break
return print("Done!")
The error always occurs on the same two folders others work fine.
我真的希望有人可以帮助我解决这个问题。其他出现类似错误的代码包含非法字符或未输入原始字符串,因此“\”之类的内容会导致异常。我认为我的脚本不是这种情况。
Tnx。
【问题讨论】:
-
OSError在底层操作系统(内核)系统调用失败并返回错误时在 Python 中引发。这里的问题应该是您的目标名称,因为 Windows 对可以或不能在路径名中使用的字符比较挑剔......这里不允许使用?和:,因此无法将文件重命名为这些目标。 -
@OndrejK。 omg ... tnx 太多了,我忘记了文件夹的新名称可能是错误的,因为我太专注于原始目录名称有问题。再次为这个答案 Tnx。
标签: python python-3.x operating-system rename