【问题标题】:Python FileNotFoundError how to handle long filenamesPython FileNotFoundError 如何处理长文件名
【发布时间】:2017-07-11 21:36:06
【问题描述】:

我有一个奇怪的问题。我既不能重命名特定文件,也不能删除它们。我收到 FileNotFoundError。

之前有人问过类似的问题。这个问题的解决方案是使用完整路径而不仅仅是文件名。

我的脚本在仅使用文件名之前可以工作,但使用不同的文件时出现此错误,即使使用完整路径也是如此。

似乎是文件名导致了错误,但我无法解决。

import os

cwd = os.getcwd()

file = "003de5664668f009cbaa7944fe188ee1_recursion1.c_2016-04-21-21-06-11_9bacb48fecd32b8cb99238721e7e27a3."
change = "student_1_recursion1.c_2016-04-21-21-06-11_9bacb48fecd32b8cb99238721e7e27a3."

oldname = os.path.join(cwd,file)
newname = os.path.join(cwd,change)

print(file in os.listdir())
print(os.path.isfile(file))
os.rename(oldname, newname)

我得到以下输出:

True
False
Traceback (most recent call last):
  File "C:\Users\X\Desktop\code\sub\test.py", line 13, in <module>
    os.rename(oldname, newname)
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden: 'C:\\Users\\X\\Desktop\\code\\sub\\003de5664668f009cbaa7944fe188ee1_recursion1.c_2016-04-21-21-06-11_9bacb48fecd32b8cb99238721e7e27a3.' -> 'C:\\Users\\X\\Desktop\\code\\sub\\student_1_recursion1.c_2016-04-21-21-06-11_9bacb48fecd32b8cb99238721e7e27a3.'
[Finished in 0.4s with exit code 1]

如果我在文件夹中使用 Windows 搜索,则此文件存在。 如果我尝试使用完整路径,我也会收到 Windows 错误,找不到文件。

我还尝试将 unicode 字符串 u''+filename 附加到字符串中,因为它是由用户建议的。

路径长度

【问题讨论】:

    标签: python file-not-found


    【解决方案1】:

    这是一个 Windows/Python 的东西。有时会修剪带有尾随句点的文件名。

    如果这是一次性任务,您可以使用两个尾随句点作为解决方法。

    【讨论】:

    • 谢谢!这确实是导致文件名拦截的尾随句点。
    【解决方案2】:

    这不完全是一个答案(我缺乏那个代表)但是......

    两个想法:

    A) 这些文件名是否应该以句点结尾?

    B) 您可以在此处使用正斜杠,而不是转义反斜杠(即 C:/.../.../...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多