У меня есть большой текстовый файл, который содержит что-то из следующего:
158 lines of Text
2000 lines of Data
140 lines of Text
2000 lines of Data
140 lines of Text
.
.
.
Всего имеется 5 наборов из 2000 строк данных, которые я хотел бы, чтобы python читал и записывал в 5 разных текстовых файлов. Что-то вроде этого:
Data1.txt
Data2.txt
Data3.txt
.
.
Просматривая в Интернете, я нашел следующее: чтение разделов из большого текстовый файл в Python эффективно
def get_block(beg,end):
output=open("Output.txt",'a')
with open("input.txt",'r') as f:
for line in f:
line=line.strip("\r\n")
line=line.split("\t")
position=str(line[0])
if int(position)<=beg:
pass
elif int(position)>=end:
break
else:
for i in line:
output.write(("%s\t")%(i))
output.write("\n")
Какая проблема похожа на мою, однако в этой функции я получаю следующую ошибку:
File "/Users/aperego/Desktop/HexaPaper/DataToPlot/ReadThermo.py", line 8, in get_block
if int(position)<=beg:
ValueError: invalid literal for int() with base 10: 'LAMMPS (5 Jun 2019)'
Я считаю, что это связано с тем, что в моем входном текстовом файле много строк текста между набором данных. Кроме того, он принимает только один интервал строк, в то время как я бы хотел, чтобы мой скрипт запускался и извлекал все строки, содержащие данные, одновременно.
Я не знаю, является ли изменение этого сценария лучшим способом решить эту проблему или есть лучший способ достичь желаемой цели. Любая помощь приветствуется!