从文件中读取

时间:2010-08-02 17:45:59

标签: python file-io

我是初学者,几天前就开始学习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 个答案:

答案 0 :(得分:6)

您不使用line,请尝试:

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

答案 1 :(得分:2)

这应该按照你想要的方式打印出每个数字,代码少得多,而且更具可读性。

def output():
    f = open('data.txt', 'r').read()
    print f

答案 2 :(得分:1)

当你使用for line in xf:时,你基本上已经迭代了文件,隐含地读取每一行。

您需要做的就是打印它:

for line in xf:
    print(line)

答案 3 :(得分:1)

您没有看到线路输出的原因是因为您没有告诉它输出线路。在迭代line的值时,您可以打印xf.read()。以下是您的功能在重写时考虑到了这一点。另外还添加了使用with statment块在您完成文件时自动关闭文件。

(使用xf.close()没有错,这个例子的pythonic就更少了。)

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") 

答案 4 :(得分:0)

您已在代码for line in xf:的变量行中阅读了文字行,因此您需要显示打印(线)

我会看一下像python.org一样的教程