所以我有一个.htm文件,我需要将其分成不同的行并存储在列表中。 所以我用于此的代码如下。
html = open('filename.htm').read().splitlines()
然而,当我执行以下操作时,整个文件立即打印出来而不是逐行打印,因此看起来文件的输入没有被分成不同的行
for line in html:
print(line)
此外,当我尝试将文件内容粘贴到程序时,它可以正常工作。
html = raw_input()
html = html.splitlines()
有人能告诉我如何将文件中的输入分成不同的行吗?感谢。
答案 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())