2 回答

TA貢獻(xiàn)1824條經(jīng)驗 獲得超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
使用這種方法,段落之間是否有多個空行也沒有關(guān)系。此外,如果“空白”行包含空格,它仍然可以工作。

TA貢獻(xiàn)1798條經(jīng)驗 獲得超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')第一個條目旁邊的索引一樣條目中的換行符。
另外,在運行之前請確保該文件確實存在,否則會引發(fā)錯誤。
添加回答
舉報