-2

我正在尝试使用以下脚本通过 python 读取硬盘驱动器上的文本文件:

fileref = open("H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")

但它给出了以下错误:

IOError                                   Traceback (most recent call last)
<ipython-input-2-4f422ec273ce> in <module>()
----> 1 fileref = open("H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")

IOError: [Errno 2] No such file or directory: 'H:\\CloudandBigData\x0cinalproj\\BeautifulSoup\twitter.txt'

我也尝试过其他方式:

with open('H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt', 'r') as f:
    print f.read()

以同样的错误结束。文本文件存在于指定的目录中。

4

2 回答 2

6

代替

fileref = open("H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")

fileref = open(r"H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")

在这里,我创建了一个原始字符串 ( r"")。这将导致诸如"\t"不被解释为制表符之类的事情。

没有原始字符串的另一种方法是

fileref = open("H:\\CloudandBigData\\finalproj\\BeautifulSoup\\twitter.txt","r")

这转义了反斜杠(即"\\" => \)。


更好的解决方案是使用os模块:

import os
filepath = os.path.join('H:', 'CloudandBigData', 'finalproj', 'BeautifulSoup', 'twitter.txt')
fileref = open(filepath, 'r')

这会以独立于操作系统的方式创建您的路径,因此您不必担心这些事情。


最后一点......一般来说,我认为你应该使用with你在问题中提到的结构......为了简洁起见,我没有在答案中。

于 2013-10-09T03:50:08.673 回答
1

我遇到了同样的问题。这个问题是由于不同的文件路径符号 Python 造成的。
例如,Windows 中的文件路径使用反斜杠读取,例如:“D:\Python\Project\file.txt”

但是 Python 使用正斜杠读取文件路径,例如:“D:/Python/Project/file.txt”

我使用 r"filepath.txt" 和 "os.path.join" 和 "os.path.abspath" 没有缓解。os 库还以 Windows 表示法生成文件路径。然后我只使用了 IDE 表示法。

如果“file.txt”位于同一目录中,则不会遇到此错误,因为文件名附加到工作目录。

PS:我在 Windows 机器上使用 Python 3.6 和 Spyder IDE。

于 2019-08-20T05:34:32.670 回答