2 回答
![?](http://img1.sycdn.imooc.com/54586870000183e302200220-100-100.jpg)
TA贡献1824条经验 获得超6个赞
使用变量来跟踪上一次迭代中的行是否包含任何文本。您需要包含文本的行,并且前一行(如果有)没有任何文本。
previous_has_text = False
with open('input.txt') as f:
for line in f:
line = line.strip()
if line:
# THIS line has text
if not previous_has_text:
print(line)
previous_has_text = True # ready for next iteration
else:
previous_has_text = False # likewise
给出:
Tom
James
Tim
使用这种方法,段落之间是否有多个空行也没有关系。此外,如果“空白”行包含空格,它仍然可以工作。
![?](http://img1.sycdn.imooc.com/533e4c3300019caf02000200-100-100.jpg)
TA贡献1798条经验 获得超3个赞
f = open('filename.txt', 'rt')
for entry in f.read().split('\n\n'):
print(entry[0 : entry.index('\n')])
filename.txt是该文本文件的名称,rt是文件打开模式:r代表“read”(只读模式)和t“text”文件。
每个条目(段落)都由两个换行符分隔(想想看),因此.split()对于每个这样的条目,我们知道第一行是名称,因此我们拼接字符串,就像[0 : entry.index('\n')]给出entry.index('\n')第一个条目旁边的索引一样条目中的换行符。
另外,在运行之前请确保该文件确实存在,否则会引发错误。
添加回答
举报