从文件中读取

6

我是一名初学者,几天前才开始学习Python(耶!)

所以我遇到了一个问题。当我运行这段代码时,它输出的是除文本之外的所有内容(文件中的txt是单独一行的数字0-10)

def output():
    xf=open("data.txt", "r")
    print xf
    print("opened, printing now")
    for line in xf:
        print(xf.read())
        print("and\n")
    xf.close()
    print("closed, done printing")  
5个回答

6

您不需要使用line,请尝试:

with open('data.txt') as f:
    for line in f:
        print line

2
这应该会打印出每个数字并换行,就像你想要的那样,而且代码更少,更易读。
def output():
    f = open('data.txt', 'r').read()
    print f

1
当你使用 for line in xf: 时,你已经隐式地迭代了文件并读取了每一行。
你需要做的就是将其打印出来:
for line in xf:
    print(line)

1
你没有看到输出行的原因是因为你没有告诉它输出行。在迭代line的值时,你打印了xf.read()。以下是考虑到这一点重写的函数。还添加了使用with语句块,在完成后自动关闭文件。
(对于此示例来说,使用xf.close()并不是错误,只是不太符合Python风格。)
def output(): 
    with open("data.txt", "r") as xf:
        print xf 
        print("opened, printing now") 
        for line in xf: 
            print(line) 
            print("and\n")
    print("closed, done printing") 

0

你已经将文本行读入到代码for line in xf:中的变量line中,所以你需要展示它,比如使用print(line)

我建议你查看像python.org这样的教程


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接