我有一个文件列表。基本上TDT2语料库包括普通话和英语文件。我只想保留英文文件并删除普通文件。手动这样做需要很长时间,因为文件很大。
结构看起来像这样:
<ONTOPIC topicid=20001 level=YES docno=VOA19980630.1800.3165 fileid=19980630_1800_1900_VOA_ENG comments="NO">
<ONTOPIC topicid=20001 level=BRIEF docno=VOM19980220.0700.0559 fileid=19980220_0700_0800_VOA_MAN comments="NO">
<ONTOPIC topicid=20001 level=YES docno=VOM19980220.0700.1159 fileid=19980220_0700_0800_VOA_MAN comments="NO">
所以我想删除fileid中有'MAN'的文件。 如何在Python中执行此特定任务?
答案 0 :(得分:0)
如果未使用\n
写入行,只需将其从endswith子句中删除即可。
这将忽略以MAN comments="NO">
结尾并输出其他文件的所有文件。
out = open('file2.txt','wb')
for i in open('file.txt'):
if i.endswith('MAN comments="NO">\n'):
pass
else:
out.write(i)
out.close()
如果你确定&#39; MAN&#39;只会成为Mandarian的一部分。看起来更清洁。
out = open('file2.txt','wb')
for i in open('file.txt'):
if 'MAN' not in i:
out.write(i)
out.close()
答案 1 :(得分:0)
你可以试试这个:
def start():
sFile = "source.txt"
dFile = "results.txt"
with open(dFile, 'w') as dHandle:
with open (sFile, "r") as fhandle:
for fline in fhandle.readlines():
if "MAN" not in fline:
dHandle.write(fline)
start()