python在新行中打印每个字符

时间:2014-03-26 12:50:34

标签: python python-2.7

我正在尝试打印行并在text / html文件的行中替换单词但由于python(2.7)逐字符地读取它而无法这样做。我做错了什么?

以下是代码和输出:

import sys

infile = open('filenmae').read()

for line in infile:
    print line

我应该得到的输出(这里只显示第一行):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

我得到的输出:

<
!
D
O
C
T
Y
P
E
.
.
.

2 个答案:

答案 0 :(得分:9)

您正在循环一个字符串,产生单个字符。

不要一次性读取文件,只需遍历文件对象:

with open('filename') as infile:
    for line in infile:
        print line

我也在这里使用该文件作为上下文管理器(with open(..) as localname);现在,当退出with块时,Python将自动为您关闭文件。

循环遍历文件对象会根据需要读取行,从而避免将整个文件读入内存。

其他替代方法是将文件一次性读取为file.readlines() method

的单独行
infile = open('filename').readlines()

或将阅读数据与str.splitlines()分开:

infile = open('filename').read().splitlines()

答案 1 :(得分:2)

您应该尝试file.readlines(),如下所示:

infile = open('filename').readlines()
for line in infile:
    print line

这会遍历每一行而不是文件中的每个字符。

Output: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">