Python read()文本文件的不同输出

Python read()文本文件的不同输出,python,Python,此代码的结果: !/usr/bin/python from sys import argv script, file = argv apertura = open(file,'r') for a in apertura: print(apertura.read()) 是: 我想使用read()打印整个文件。上面的代码跳过了一些行。为什么? 文件内容如下: prima seconda terza quarta quinta sesta settima ottava nona 试试这个

此代码的结果:

!/usr/bin/python
from sys import argv
script, file = argv
apertura = open(file,'r')

for a in apertura:
    print(apertura.read())
是:


我想使用read()打印整个文件。上面的代码跳过了一些行。为什么?

文件内容如下:

prima seconda terza
quarta
quinta
sesta
settima
ottava
nona
试试这个:

for line in apertura.readlines():
    print line

这应该是可行的。

问题是您混合了两种读取文件的方法

for a in apertura:          # this reads in the first line of the file
    print(apertura.read())  # this reads the remainder of the file in one chunk
因此,永远不会打印文件的第一行

您可以像这样逐行遍历文件:

for a in apertura:
    print(a)
您还可以使用上下文管理器确保文件在之后关闭

#!/usr/bin/python
from sys import argv
script, file = argv
with open(file, 'r') as apertura:
    for a in apertura:
        print(a)
如果确实要使用
.read()
读取文件,代码会稍微简单一些,但如果文件较大,则会占用大量内存

#!/usr/bin/python
from sys import argv
script, file = argv
with open(file, 'r') as apertura:
    print(apertura.read())

要打印整个文件,请执行以下操作:

!/usr/bin/python
from sys import argv
script, file = argv
apertura = open(file,'r')
print apertura.read()
或更短:

!/usr/bin/python
import sys
print open(sys.argv[1]).read()
将open('C:\Users\33382\Desktop\pf.txt','r')作为f: 行=f.读行()

对于行中的行:
打印行

您能更好地解释一下您的问题吗?是否要打印文件中的每一行?或者将文件中的每个单词单独打印在一行中?我想使用read()打印整个文件。上面的代码跳过了一些行。为什么?您不能同时迭代文件和
.read()
它。。
!/usr/bin/python
from sys import argv
script, file = argv
apertura = open(file,'r')
print apertura.read()
!/usr/bin/python
import sys
print open(sys.argv[1]).read()