将htm文件拆分为python中的单独行

时间:2013-05-19 07:08:55

标签: python file input split

所以我有一个.htm文件,我需要将其分成不同的行并存储在列表中。 所以我用于此的代码如下。

html = open('filename.htm').read().splitlines()

然而,当我执行以下操作时,整个文件立即打印出来而不是逐行打印,因此看起来文件的输入没有被分成不同的行

for line in html:
    print(line)

此外,当我尝试将文件内容粘贴到程序时,它可以正常工作。

html = raw_input()
html = html.splitlines()

有人能告诉我如何将文件中的输入分成不同的行吗?感谢。

4 个答案:

答案 0 :(得分:3)

由于for line in html: print(line)表示打印所有行,因此显然会打印整个文件,当时只有一行。

因此,除非您将文件“合并”在单行文本上,否则它正在运行。您可以添加一些文本输出以确定它:

html = open('try.htm').read().splitlines()
for line in html:
    print("Line:")
    print(line)
    print()

答案 1 :(得分:2)

您不希望第一次通话中出现read()部分。试试这个:

htmllines = open('filename.htm').readlines()
for line in html:
    print line

如果您的HTML文件肯定是多行,而不是Dek建议的一行,那么请确保您的文件具有正确的编码 - 您可能需要解码如下:

htmllines = open('filename.htm').read().decode("Some Encoding").splitlines()
for line in html:
    print line

答案 2 :(得分:0)

file.readlines([sizehint])怎么样?

答案 3 :(得分:0)

您需要readlines()而不是splitlines()。你的代码如下所示

all_lines = open('sample.html').readlines()

for line in all_lines:
    print(line)

要以列表形式存储,您可以

lst = list(open('sample.html').readlines())
相关问题