如何将文件打印到标准输出?

104 投票
11 回答
139684 浏览
提问于 2025-04-17 06:03

我查了一下,只找到关于把标准输入写入文件的问题。

有没有简单的方法可以把一个文件的内容输出到 stdout 呢?

11 个回答

18
f = open('file.txt', 'r')
print f.read()
f.close()

来自 http://docs.python.org/tutorial/inputoutput.html

要读取一个文件的内容,可以使用 f.read(size) 这个方法。它会读取一定数量的数据,并把这些数据作为字符串返回。这里的 size 是一个可选的数字参数。如果你不写 size 或者写了一个负数,程序就会把整个文件的内容都读取出来并返回;不过,如果文件的大小超过了你电脑的内存,那就麻烦了。否则,最多只会读取 size 字节的数据并返回。如果文件已经读到最后了,f.read() 就会返回一个空字符串 ("")。

45

如果你处理的是一个很大的文件,而不想像Ben的解决方案那样消耗大量内存,那么下面的额外代码也可以用。

>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
...    shutil.copyfileobj(f, sys.stdout)

这段代码同样有效。

140

当然可以。假设你有一个包含文件名的字符串,叫做 fname,下面的代码就能解决这个问题。

with open(fname, 'r') as fin:
    print(fin.read())

撰写回答