python - 如何在 Python 中打印文本文件每一段的第一行?
问题描述
假设我有一个这样的文本文件:
Tom
15
Basketball
James
16
Tennis
Track
Choir
Tim
14
Band
Class Chairman
我想显示这个:
Tom
James
Tim
我的程序允许用户将更多信息附加到 txt 文件中。虽然我可以让它只读取第 1、5 和 11 行,但问题在于显示任何添加的信息。每个段落也可能有不同数量的行。据我所知(并在网上找到),没有办法在不导入外部工具的情况下只打印 txt 文件的每一段的第一行。有没有一种复杂的方法可以做到这一点,或者有没有不同的方法来解决这个问题?
解决方案
f = open('filename.txt', 'rt')
for entry in f.read().split('\n\n'):
print(entry[0 : entry.index('\n')])
filename.txt
是该文本文件的名称,rt
是文件打开模式:r
代表“读取”(只读模式)和t
“文本”文件。
每个条目(段落)都由两个换行符分隔(考虑一下),所以我们以此.split()
为基础,对于每个这样的条目,我们知道第一行是名称,所以我们将字符串拼接为[0 : entry.index('\n')]
在entry.index('\n')
第一个旁边给出索引条目中的换行符。
另外,在运行之前确保文件确实存在,否则会抛出错误。
推荐阅读
- hyperledger-fabric - 在 JavaScript 中的一个链码中部署和调用多个智能合约
- c - 为结构指针成员的地址赋值
- python - 为什么我在方法外遇到继承属性的 NameError?
- python-3.x - 根据另一列中的日期过滤列中的值
- javascript - 我想叠加在图像 css 上
- plsql - 如何解决 PL/Sql 函数编译错误
- visual-studio-2019 - 我们可以通过 SSDT 包创建数据库吗?
- c++ - 为什么将音频流添加到 ffmpeg 的 libavcodec 输出容器会导致崩溃?
- java - 在 BroadCastReceiver android 8 中启动服务
- amazon-web-services - 为什么选择查询在 Athena 中返回所有带有文件数据的表数据