我是初学者,几天前就开始学习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")
答案 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一样的教程