我正在编写一个程序,用于打开文件,计算单词,返回单词数,然后关闭.我知道如何做所有事情激发让文件打开并显示文本这是我到目前为止:
fname = open("C:\Python32\getty.txt") file = open(fname,'r') data = file.read() print(data)
我得到的错误是:
TypeError: invalid file: <_io.TextIOWrapper name='C:\\Python32\\getty.txt' mode='r' encoding='cp1252'>
解决方法
您正在使用open()两次,因此您实际上已经打开了该文件,然后您尝试打开已打开的文件对象…将您的代码更改为:
fname = "C:\\Python32\\getty.txt" infile = open(fname,'r') data = infile.read() print(data)
TypeError表示无法打开类型_io.TextIOWrapper,这是打开文件时open()返回的内容.
编辑:你应该真的像这样处理文件:
with open(r"C:\Python32\getty.txt",'r') as infile: data = infile.read() print(data)
因为当with语句块完成时,它将为你处理文件关闭,这是非常好的.字符串前面的r将阻止python解释它,使它完全按照你的方式形成它.