打开.txt文件和打印内容无效的功能

时间:2015-07-12 16:04:52

标签: 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_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'

我该如何解决?

2 个答案:

答案 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()