Python打开文档

时间:2013-06-10 15:17:46

标签: python document

我目前正在使用语言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 个答案:

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

python docs

中的更多信息

答案 2 :(得分:0)

ffile 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()

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

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