想要根据特定的文本(字符串)分割文本文件,但无法找到解决方案,因此首先收集该字符串存在的行号,然后尝试分割文件。
下面是从文本文件中收集行的代码。
file1 = open("textfile_1.txt", "r")
string1 = 'Weight Total'
flag = 0
index = 0
fl = 1
Spl_Lines = []
for line in file1:
index += 1
if string1 in line:
Spl_Lines.append(index)
print(Spl_Lines)
作为结果得到行号,其中"Weight Total"提到。
把:[350, 850, 1123, 1640, 1810, 2250]
现在想要从列出的行分割文本文件,所以我尝试下面的代码,但它没有工作。难以分割文本文件与特定字串匹配。
lines = file1.readlines()
# print(lines) getting blank
for i in Spl_Lines:
with open('E'+str(fl)+".txt",'w') as file:
for line in lines[i]:
file.write(line)
fl += 1
我尝试了这个,但不工作,如何通过特定的字符串或列出的行拆分文本文件成多个文件。
这可以在输入文件的一次传递中完成,如下所示:
key = 'Weight Total'
outfile = None
fileno = 0
lineno = 0
with open('textfile_1.txt') as infile:
while line := infile.readline():
lineno += 1
if outfile is None:
fileno += 1
outfile = open(f'E{fileno}.txt', 'w')
outfile.write(line)
if key in line:
print(f'"{key}" found in line {lineno}')
outfile.close()
outfile = None
if outfile:
outfile.close()
注意:
这假定包含键的任何行都将包含在输出文件
为什么不在您的string1
上分割字符串,然后将文本附加回去?
file1 = open("textfile_1.txt", "r")
string1 = 'Weight Total'
text = file1.read()
text_splitted = [i + string1 for i in text.split(string1)]