【发布时间】:2019-03-15 02:33:29
【问题描述】:
尝试使用“open (fname, 'w+')”打开新文件时,出现如下所示的 IOError。完整的错误信息如下。
该文件不存在,但我使用“os.access(dir_name, os.W_OK)”和“os.path.exists (dir_name)”验证该文件的父目录确实存在。
我想知道文件名对于 Windows 是否太长,或者我做错了什么。任何提示将不胜感激。非常感谢。
错误信息:
IOError: [Errno 2] 没有这样的文件或目录:'C:\Documents and Settings\Administrator\op_models\Corp_Network_Nov12\abcde_corporate_nov_12.project\abcde_corporate_nov_12-ctr.rptd.dir\ctr\Non 营业时间 Weeknights\hourly_data_for_2_weeks\1294897740\json.data\Link\0\Link 使用\analyzer393146160-data0.js'
【问题讨论】:
-
谢谢。限制确实超过 260 个字符。 MSDN文章提到我们可以使用“\\?\”前缀作为长文件名,只是好奇是否有人知道我如何将前缀添加到文件名中。当我尝试执行简单的“+”操作时,在扫描单引号字符串时出现错误 EOL。 (fname = '\\?\' + fname)
-
使用“\\\\?\\”。在这种情况下,原始字符串将不起作用。
-
改用正斜杠。另见stackoverflow.com/faq#howtoask
-
我尝试使用 "\\\\?\\" 和 "\\\\UNC\\?\\" 通过将它们附加到文件名并得到相同的异常。无论如何,当我尝试在 Windows 资源管理器中创建文件时,它不会让我创建文件(Windows 阻止我添加字符)。我猜这是系统限制?