gpt4 book ai didi

python - 我需要过滤或删除文件中的一些行

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:02 26 4
gpt4 key购买 nike

这是输入文件,它的结构已经正确:

Name:  mr. Apple
class: class 1
sub: subject 1
ContactNo: 11111
Name: mr. ball
class: class 2
sub: subject 2
ContactNo: 2222
Name: mr. cat
class: class 3
sub: subject 3
ContactNo: 33333
class: class 4
sub: subject 4
ContactNo:44444
class: class 5
sub: subject 5
ContactNo: 55555
Name: mr. tom
class: class 9
sub: subject 9
ContactNo: 99999

如您所见,有些细节没有名称。

for example: class: class 4 sub: subject 4 ContactNo:44444

我需要删除这些,只保留那些有名字的人的详细信息。

预期输出:

Name:  mr. Apple
class: class 1
sub: subject 1
ContactNo: 11111
Name: mr. ball
class: class 2
sub: subject 2
ContactNo: 2222
Name: mr. cat
class: class 3
sub: subject 3
ContactNo: 33333
Name: mr. tom
class: class 9
sub: subject 9
ContactNo: 99999

我已经试过了:

errors = []                       # The list where we will store results.
linenum = 0
substr = "Name:".lower() # Substring to search for.
substr1 = "class:".lower()
substr2 = "sub:".lower()
substr3 = "ContactNo:".lower()

with open ('scrap.txt', 'rt') as myfile:
for line in myfile:
linenum += 1
if line.lower().find(substr) != -1: # if case-insensitive match,
errors.append(line)
elif line.lower().find(substr1) != -1:
errors.append(line)
elif line.lower().find(substr2) != -1:
errors.append(line)
elif line.lower().find(substr3) != -1:
errors.append(line)

for err in errors:
fp = open("rawextract.txt","a")
fp.write(err)
fp.close()
print(err)

但我不知道如何丢弃不完整的行。

最佳答案

您可以将 re.findall 与正则表达式模式一起使用,以匹配预期 header 的正确结构序列:

import re
with open('scrap.txt') as myfile:
for m in re.findall('Name:.*\nclass:.*\nsub:.*\nContactNo:.*', myfile.read()):
print(m)

这个输出:

Name:  mr. Apple
class: class 1
sub: subject 1
ContactNo: 11111
Name: mr. ball
class: class 2
sub: subject 2
ContactNo: 2222
Name: mr. cat
class: class 3
sub: subject 3
ContactNo: 33333
Name: mr. tom
class: class 9
sub: subject 9
ContactNo: 99999

关于python - 我需要过滤或删除文件中的一些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com