【问题标题】:Python I/O cannot find file, but path seems OKPython I/O 找不到文件,但路径似乎没问题
【发布时间】:2012-06-26 18:26:48
【问题描述】:

我使用的是 python 脚本。我想打开一个文件来检索里面的数据。我将正确的路径添加到sys.path

 sys.path.append('F:\WORK\SIMILITUDE\ALGOCODE')
 sys.path.append('F:\WORK\SIMILITUDE\ALGOCODE\DTW')

更准确地说,我要打开的文件file.txt在DTW文件夹中,我还添加了上层文件夹ALGOCODE。然后,我有命令

inputASTM170512 = open("file.txt","r")

我有这个礼物:

Traceback (most recent call last):
   File "<pyshell#24>", line 1, in <module>
   inputASTM170512 = open("ASTM-170512.txt","r")
IOError: [Errno 2] No such file or directory: 'ASTM-170512.txt'

为什么?你有什么想法吗?

【问题讨论】:

  • 答案指出,sys.path 不用于打开任意文件。但您也应该在 Windows 上转义目录路径中的反斜杠:F:\\WORK\\SIMILITUDE\\ALGOCODE;反斜杠本身就是一个转义字符。

标签: python file-io io


【解决方案1】:

open() 仅检查当前工作目录,不会遍历您的系统路径来查找文件。只有import 可以使用该机制。

您需要在打开文件之前更改工作目录,使用os.chdir(PATH) 或在尝试打开文件时包含整个路径。

【讨论】:

    【解决方案2】:

    当您尝试使用open 打开文件时,例如:

    open("ASTM-170512.txt","r")
    

    您将尝试在当前目录中打开一个文件。

    它不依赖于sys.pathsys.path 变量在您尝试导入模块时使用,但在您打开文件时不使用。

    你需要在open中指定文件的完整路径或者把当前目录改到对应的地方(我觉得前者更好)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多