0

我目前正在用python语言构建一个可以打开文本文档(.txt)的项目。但是我遇到了一个问题。我尝试使用以下代码打开文档:

f = open("music_data.txt","r")
print(f)

但它不起作用。它只是说:

<_io.TextIOWrapper name='music_data.txt' mode='r' encoding='cp1252'>

这似乎是打印包含文档的变量的标准方法,但随后它给出了一条错误消息:

Traceback (most recent call last):
File "\\bcs\StudentRedir2010$\StudentFiles\MyName\MyDocuments\Computing\Programming\Python\Music Program\program.py", line 45, in <module>
mode()
File "\\bcs\StudentRedir2010$\StudentFiles\MyName\MyDocuments\Computing\Programming\Python\Music Program\program.py", line 43, in mode
mode()
TypeError: 'str' object is not callable

我不知道这是为什么。

4

4 回答 4

4

f不是文件的内容——它是一个文件对象。您可以使用打印文件的全部内容print(f.read());您还可以逐行遍历它(内存效率更高):

for line in f:
    print(line)  # or do whatever else you want with the line...

您可以在Python 教程页面上找到更多关于文件的信息。

于 2013-06-10T15:21:33.070 回答
1

查看用于处理文件的“with”模式,因为它也可以很好地处理关闭文件,即使在异常导致脚本停止的情况下:

with open("your-file.txt", "r") as my_file:
  file_contents = my_file.read()
  print(file_contents)

python 文档中的更多信息

于 2013-06-10T15:27:20.607 回答
0

f是对包含其他信息而不仅仅是内容的文件的一种引用file object 有几种方法可以访问文件的内容。

1.迭代内容

for line in f:
    # process line

这种行为有时可能不是你想要的。如果文件包含多行,它将遍历这些行。如果文件包含一行,则遍历字符

2.使用readline()

f 是一个io.TextWrapper具有 readline 方法的实例。它读取并返回字符,直到遇到换行符。该函数有一个newline参数open。要从文档中读取单词,您可以这样做:open(path/to/file, mode, newline=" ")

3. 使用 read()

读取并返回字符,直到EOF遇到。

4.使用readlines()

从文件中读取并返回行列表

于 2017-08-15T03:09:00.047 回答
0

尝试以下,它应该工作:

f = open("music_data.txt","r")
print f.read()
于 2018-02-06T04:42:14.047 回答