我目前正在使用语言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
我不知道为什么会这样。
答案 0 :(得分:4)
f
不是文件的内容 - 它是文件对象。您可以使用print(f.read())
打印文件的全部内容;你也可以逐行迭代它(更多的内存效率):
for line in f:
print(line) # or do whatever else you want with the line...
您可以在Python Tutorial page on files找到更多信息。
答案 1 :(得分:1)
检查用于处理文件的“with”模式,因为它也可以很好地处理文件,即使在异常导致脚本停止的情况下:
with open("your-file.txt", "r") as my_file:
file_contents = my_file.read()
print(file_contents)
中的更多信息
答案 2 :(得分:0)
f
是file object
即类型的文件引用,其中包含其他信息,而不仅仅是内容。有几种方法可以访问文件的内容。
for line in f:
# process line
行为有时可能不是你想要的。如果文件由多行组成,它将遍历这些行。如果文件包含一行,则迭代字符
f是io.TextWrapper
的一个实例,它有一个readline方法。它会读取并返回字符,直到遇到换行符。 newline
函数有open
个参数。要阅读文档中的文字,您可以执行以下操作:open(path/to/file, mode, newline=" ")
读取并返回字符,直到遇到EOF
。
从文件中读取并返回行列表
答案 3 :(得分:0)
尝试以下操作,它应该有效:
pipeline := []bson.D{
bson.D{
{"$unwind", "$method"},
},
bson.D{
{"$group", bson.M{"_id": "$method", "count": bson.M{"$sum": 1}}},
},
query := bson.D{
{"aggregate", "API_ACCESS_LOGS"}, // useragents is a collection name
{"pipeline", pipeline},
}
err = session.DB("vamps-logs").Run(query, &methods)