我试图在我的.txt中出现〜||〜之后插入一个增量。我有这个工作,但是我想将它拆分,所以在每个分号后,它从1开始重新开始。
到目前为止,我有以下内容,除了以分号分隔外,它可以执行所有操作。
inputfile = "output2.txt"
outputfile = "/output3.txt"
f = open(inputfile, "r")
words = f.read().split('~||~')
f.close()
count = 1
for i in range(len(words)):
if ';' in words [i]:
count = 1
words[i] += "~||~" + str(count)
count = count + 1
f2 = open(outputfile, "w")
f2.write("".join(words))
答案 0 :(得分:0)
您可以按照;
进行初始拆分,然后在~||~
上拆分子串,而不是按照现在的方式重置计数器。您必须以另一种方式存储您的文字,因为您不再执行words = f.read().split('~||~')
,但无论如何都要制作一个全新的列表更安全。
inputfile = "output2.txt"
outputfile = "/output3.txt"
all_words = []
f = open(inputfile, "r")
lines = f.read().split(';')
f.close()
for line in lines:
count = 1
words = line.split('~||~')
for word in words:
all_words.append(word + "~||~" + str(count))
count += 1
f2 = open(outputfile, "w")
f2.write("".join(all_words))
看看这是否适合您。您也可能希望在其中放置一些策略性的换行符,以使输出更具可读性。
答案 1 :(得分:0)
为什么不首先根据分号拆分文件,然后在每个段中计算'〜||〜'的出现次数。
import re
count = 0
with open(inputfile) as f:
semicolon_separated_chunks = f.read().split(';')
count = len(re.findall('~||~', semicolon_separated_chunks))
# if file text is 'hello there ~||~ what is that; what ~||~ do you ~|| mean; nevermind ~||~'
# then count = 4