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
的操作,他只需要避开反斜杠