python - 在 python 中解析文件并删除不需要的行
问题描述
我正在寻找解析一个文件并删除其中没有“亚洲”一词的所有行。我也想忽略标题
Header record
India is in Asia
Japan is in Asia
Germany is in Europe
China is in Asia
US is in NortAmerica
Brazil is in SouthAmerica
Trailer record
有没有办法可以改进下面的代码
fhand = open('P:\Python\Python.txt')
a=[]
for line in fhand:
a.append(line.split())
for i in a[1:-1]:
if 'Asia' not in i:
a.remove(i)
print (a[1:-1])
解决方案
标题似乎是下面没有 VALID_MARKER 的任何内容。因此,您可以这样迭代并以这种方式过滤:
with open('data.txt', 'r') as f:
data = f.readlines()
IGNORE_COUNTRY = 'Asia'
VALID_MARKER = 'is in'
cleaned_lines = []
for line in data:
if IGNORE_COUNTRY in line or VALID_MARKER not in line:
continue
cleaned_lines.append(line.rstrip())
print cleaned_lines
输出:
['Germany is in Europe', 'US is in NortAmerica', 'Brazil is in SouthAmerica']
推荐阅读
- java - 分别处理 try-with-resources 块中 AutoCloseable 的 close-Method 抛出的 IOException
- google-cloud-firestore - 有没有办法只导出 Firestore 增量或自上次导出以来的更改(差异)?
- python-3.x - 从文件夹中读取所有图像并将其转换为单通道图像并保存
- javascript - 检测用户是否在数据列表中选择或键入了新值
- java - java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: 错误:0c0000b9:ASN.1 编码例程:OPENSSL_internal:WRONG_TAG
- python - Scrapy:如何在if语句中获取过去24小时内发布的项目?
- flutter - Firestore,检测添加到集合中的新文档等
- java - 我们是否可以使用“WinAppDriver”自动化 Slack 和 Trello 窗口商店应用程序?
- angular - angular 6共享模块不适用于其他模块
- azure - Azure Resorce Explorer - 在哪里查看锁?