这是我的功能:
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'
我该如何解决?
答案 0 :(得分:6)
假设文件"C:\blop\movie_quotes.txt"
存在,Python会将\b
转换为\x08
,然后再将其传递到导致您出现问题的open()
。您应该在r
之前添加字符串,使其成为原始字符串,并且\b
不会转换为任何内容(\\b
除外),以转义\
。
您的代码中的另一个问题是您正在执行 - contents_of_file = quotes.read
。这只会在read()
名称中引用contents_of_file
函数。我想你想读取文件的内容,所以你应该把读取函数称为 - contents_of_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()
答案 1 :(得分:-1)
'\b'
是Python中的一个特殊字符。与'\n'
相同的是一个特殊字符,表示换行符,'\t'
是制表符,'\r'
是回车符。
'\\\\'
是一个特殊字符,表示反斜杠字符。因此,每次需要反斜杠时,都需要将其转义,然后放入两个反斜杠以便打印一个反斜杠。
open("C:\blop\movie_quotes.txt")
应为open("C:\\\\blop\\\\movie_quotes.txt")
您的代码中也有其他错误。在每次函数调用后,您都缺少括号()
,例如read()
或close()
。