Форум сайта python.su
0
Здравствуйте. Помогите решить задачку.
Есть два больших файла (больше гига). В них располагаются строки с 11 столбцами. данные в ячейках могут меняться. т.е. в первой строке и втором столбце значение имеет 10 символов, а во второй строке и втором столбце только 5.
Необходимо взять значение из второго(и/или третьего) столбца и найти совпадение во втором файле. В положительном случае записать всю строку из первого и найденные строки из второго в третий файл.
набросал небольшой скрипт для поиска, а вот вычленить отдельные элементы не могу.
Что добавить/исправить?
search_num = ‘123’
with open('thirdfile', ‘a’) as result:
for files in ('D:\python\first.txt', ‘D:\python\second.txt’):
with open(files) as source:
for line in source:
if search_num in line:
result.write(line)
Заранее благодарен.
Офлайн
33
iskramaКод
Что добавить/исправить?
Офлайн
253
iskramaПод большими обычно понимают файлы которые не лезут в оперативную память. Для больших файлов используют СУБД там есть алгоритмы для работы с последовательностями которые не лезут в память.
Есть два больших файла (больше гига).
iskramaВаш код делает не то что вы описали словами. Так что надо?
Необходимо взять значение из второго(и/или третьего) столбца и найти совпадение во втором файле.
iskramaВычленяют обычно применяя
а вот вычленить отдельные элементы не могу.
"a b c".split()[2]
{"содержимое колонки 2 со строки 5":[[200,500],[800,900]],"содержимое колонки 3 со строки 6":[[250,550],[850,950]]...}
iskramaЭто строка полностью должна совпасть или поле? или любое поле? В общем если тест можно будет оформить операцией in со словарем то все нормально.
и найти совпадение во втором файле
Офлайн