这很难看,但它有效而且它是纯 python
文件names.txt
(我在名字 Courtney 前面放了数字,以便更容易确定哪些被删除):
11111 Courtney Emma Jessica 22222 Courtney Ashley Amanda Jennifer
Sarah Michael 33333 Courtney Christopher Matthew Joshua David
Emma Jessica Ashley Amanda Jennifer 44444 Courtney
Sarah 55555 Courtney Michael 66666 Courtney Christopher
77777 Courtney Emma Jessica Ashley Amanda Jennifer 88888 Courtney
Sarah Michael 99999 Courtney Christopher Matthew
代码:
f = open("names.txt",'r')
splited_lines = []
name_occurrence = 0
name = "Courtney"
#create list of lines where line is list of words
index = 1
for line in f:
name_occurrence += line.count(name)
splited_line = line.split()
splited_lines.append(splited_line)
f.close
#delete every even name (Courtney)
#if you want every odd to be deleted set word_counter on 0
word_counter = -1
for i,line in enumerate(splited_lines):
for j,word in enumerate(line):
if (name in word):
word_counter += 1
if (word_counter%2 == 0):
splited_lines[i][j] = word.replace(name, "")
#create string to write back to file
text_to_save = ""
for line in splited_lines:
for word in line:
if word != "":
text_to_save += word + " "
text_to_save += "\n"
#write to file
with open('names.txt', 'w') as f:
f.writelines(text_to_save)
我希望这有帮助。如果您有不明白的地方,请随时询问。