У меня есть очень большой файл со строками, как показано ниже:
....
0.040027 abcde 12 34 56 78 90 12 34 56
0.050027 fghil 12 3456 78 90 12 34 56
0.060027 abcde 12 34 56 78 90 12 34 56
0.070027 fghil 12 34 56 78 90 12 34 56
0.080027 abcde 12 34 56 7890 12 34 56
0.090027 фгхил 12 34 56 78 90 12 34 56
....
Мне нужен словарь как можно быстрее.
Я использую следующий код:
ascFile = open('C:\\eample.txt', 'r', encoding='UTF-8')
tag1 = ' a b c d e '
tag2 = ' f g h i l '
tags = [tag1, tag2]
temp = {'k1':[], 'k2':[]}
key_tag = {'k1':tag1, 'k2':tag2 }
t1 = time.time()
for line in ascFile:
for path, tag in key_tag.items():
if tag in line:
columns = line.strip().split(tag, 1)
temp[path].append([columns[0], columns[-1].replace(' ', '')])
t2 = time.time()
print(t2-t1)
У меня есть следующий результат за 6 секунд анализа файла 360 МБ, я хотел бы улучшить время.
temp = {'k1': [['0,040027', '1234567890123456'], ['0,060027', '1234567890123456'], ['0,080027', '1234567890123456']], 'k2': [['0,050027', '1234567890123456 '], [' 0.070027 ',' 1234567890123456 '], [' 0.090027 ',' 1234567890123456 ']]}