python printing each character in new line
我试图打印行并替换文本/html文件行中的单词,但不能这样做,因为python(2.7)正在逐字符地读取它。我做错什么了?
下面是代码和输出:
1 2 3 4 5 6 | import sys infile = open('filenmae').read() for line in infile: print line |
我应该得到的输出(这里只显示第一行):
1 | <!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> |
我得到的输出:
1 2 3 4 5 6 7 8 9 10 11 12 | < ! D O C T Y P E . . . |
您正在一个字符串上循环,该字符串生成单个字符。
不要一次读取文件,只需循环文件对象:
1 2 3 | with open('filename') as infile: for line in infile: print line |
我在这里也将该文件用作上下文管理器(
在文件对象上循环可以根据需要读取行,避免将整个文件读取到内存中。
其他替代方法是使用
1 | infile = open('filename').readlines() |
或者用
1 | infile = open('filename').read().splitlines() |
您应该尝试使用
1 2 3 | infile = open('filename').readlines() for line in infile: print line |
这将循环文件中的每一行,而不是每一个字符。