Python 函数打开.txt文件并打印不起作用的内容

Python 函数打开.txt文件并打印不起作用的内容,python,Python,这是我的职责: def read_text(): quotes = open("C:\blop\movie_quotes.txt") contents_of_file = quotes.read print(contents_of_file) quotes.close read_text() 我正试图读取文件并打印文件中的文本,但出现以下错误: Traceback (most recent call last):File "C:/Python27/detect_

这是我的职责:

def read_text():
    quotes = open("C:\blop\movie_quotes.txt")
    contents_of_file = quotes.read
    print(contents_of_file)
    quotes.close
read_text()
我正试图读取文件并打印文件中的文本,但出现以下错误:

Traceback (most recent call last):File "C:/Python27/detect_profanity.py", line 6, in <module>
read_text()File "C:/Python27/detect_profanity.py", line 2, in read_text
quotes = open("C:\blop\movie_quotes.txt")
IOError: [Errno 22] invalid mode ('r') or filename: 'C:\x08lop\\movie_quotes.txt'
Traceback(最近一次调用last):文件“C:/Python27/detect_profanity.py”,第6行,在
read_text()文件“C:/Python27/detect_profanity.py”,第2行,在read_text中
quotes=open(“C:\blop\movie\u quotes.txt”)
IOError:[Errno 22]无效的模式('r')或文件名:“C:\x08lop\\movie\u quotes.txt”
如何修复它?

假设存在文件
“C:\blop\movie\u quotes.txt”
,Python正在将
\b
转换为
\x08
,然后将其传递到
open()
上,从而导致您的问题。您应该在字符串前面加上
r
,使其成为原始字符串,并且
\b
不会转换为任何内容(除了
\\b
,用于转义
\

代码中的另一个问题是您正在执行-
contents\u of\u file=quotes.read
。这只会将对
read()
函数的引用放在文件的
contents\u
name中。我认为您希望读取文件的内容,因此应该将read函数调用为-
contents\u of\u file=quotes.read()

例如:

def read_text():
    quotes = open(r"C:\blop\movie_quotes.txt")
    contents_of_file = quotes.read()
    print(contents_of_file)
    quotes.close()
read_text()
您也可以在此处使用
with
语句:

def read_text():
    with open(r"C:\blop\movie_quotes.txt") as quotes:
        contents_of_file = quotes.read()
        print(contents_of_file)
read_text()

“\b”
是Python中的一个特殊字符。与
'\n'
相同的是一个特殊字符,表示换行符,
'\t'
是制表符,
'\r'
是回车符

“\\\\”
是一个特殊字符,表示反斜杠字符。所以每次你需要一个反斜杠的时候,你都需要避开它,然后放两个反斜杠来打印一个

open(“C:\blop\movie\u quotes.txt”)
应该是
open(“C:\\\\blop\\\\movie\u quotes.txt”)


代码中还有其他错误。每次函数调用后,如
read()
close()

请记住接受答案,单击答案左侧的勾号,这将对社区有帮助。您忘记了阅读模式,
close()
后的括号,使用open as的
的可用性您还忘记了使用
缩进
下面的部分,否则,除了使用
原始字符串
-
r“C:\blop\movie\u quotes.txt”
,回答得很好,您应该使用而不仅仅是
open
构建路径需要一个反斜杠,并且OP不必在字符串中转义反斜杠。他可以做一些类似于
r“C:\blop\movie\u quotes.txt”
的事情。
r
将反斜杠读取为非esscape字符。如果他在字符串中执行类似于
\n
的操作,他只需要避开反斜杠