我有一个文本文件,想在Windows上使用Python 3.5打印另外两行之间的行。我想将话剧中的角色打印到另一个文件中。文本文件如下所示:
...
Characters:
Peter, the king.
Anna, court lady.
Michael, caretaker.
Andre, soldier.
Tina, baker.
First scene.
...
我想在“字符:”和“第一个场景”之间打印所有字符名称。我的第一次尝试是:
newfile = open('newfile.txt', 'w')
with open('drama.txt', 'r') as f:
for line in f:
if line.startswith('Characters:'):
print(next(f), file = newfile)
但这只打印一行,而我需要几行,而next()函数的迭代在打印一行后总是导致StopIteration Error。因此,有一种说法:打印“字符:”和“第一场景”之间的所有行吗?索引实际上是不可能的,因为我正在为几部戏做这件事,而且它们都有不同数量的角色。
您可以设置一个布尔值来知道是否打印行:
newfile = open('newfile.txt', 'w')
printing = False
with open('drama.txt', 'r') as f:
for line in f:
if line.startswith('Characters:'):
printing = True
continue # go to next line
elif line.startswith('First scene'):
printing = False
break # quit file reading
if printing:
print(line, file=newfile)
newfile.close()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句