找不到文件在python中读取文本时出错

Sha*_*tra -3 python

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

fileref = open("H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")
Run Code Online (Sandbox Code Playgroud)

但是它给出了以下错误:

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'
Run Code Online (Sandbox Code Playgroud)

我还尝试了其他方法:

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

最终出现相同的错误。文本文件位于指定的目录中。

Set*_*ton 5

更换

fileref = open("H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")
Run Code Online (Sandbox Code Playgroud)

fileref = open(r"H:\CloudandBigData\finalproj\BeautifulSoup\twitter.txt","r")
Run Code Online (Sandbox Code Playgroud)

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

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

fileref = open("H:\\CloudandBigData\\finalproj\\BeautifulSoup\\twitter.txt","r")
Run Code Online (Sandbox Code Playgroud)

这样可以避免使用反斜杠(即"\\" => \)。


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

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

这将以与操作系统无关的方式创建路径,因此您不必担心这些事情。


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