首页 > 解决方案 > 在 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])

标签: python

解决方案


标题似乎是下面没有 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']

推荐阅读