Форум сайта python.su
0
Помогите, пожалуйста, кодом решения следующей проблемы
есть два тхт файла
первый содержит текст следующего вида
Андрей;123;789
Светлана;7250;924
Игорь;756758;7538
второй содержит текст следующего вида
123;789;QQQ
7250;924;RRR
756758;7538;TTT
нужно сделать их сравнение и замену при совпадении и сохранение в отдельный файл
пример
Андрей;123;789 = 123;789;QQQ сохранение Андрей;QQQ
Офлайн
61
В чем сложность?
Покажите код? Что не получаеться?
Офлайн
73
ну как вариант
with open('1.txt') as file_1 , open('2.txt') as file_2: list_file_1 = [i.strip() for i in file_1.readlines()] list_file_2 = [i.strip() for i in file_2.readlines()] list_3 = [] for i in list_file_1: elem = i[i.find(';')+1:] for j in list_file_2: if elem in j: list_3.append ('{};{}'.format(i.split(';')[0],j.split(';')[-1])) with open('3.txt','w') as file_3: for i in list_3: file_3.write(i+'\n')
Офлайн
253
marvellikеще вариант
ну как вариант
import pandas as pd f1=pd.read_csv("f1.txt",delimiter=";",header=None) f1.columns=["name","i1","i2"] f2=pd.read_csv("f2.txt",delimiter=";",header=None) f2.columns=["i1","i2","name"] print(pd.merge(f1,f2,on=["i1","i2"])) >>> name_x i1 i2 name_y 0 Светлана 7250 924 RRR 1 Игорь 756758 7538 TTT
Офлайн
73
doza_andтак результат немного не тот
еще вариант
Светлана 7250 924 RRR Игорь 756758 7538 TTT
deluxxxто есть цифры не должны прописываться
сохранение Андрей;QQQ
Андрей;QQQ Светлана;RRR Игорь;TTT
res = 'Светлана 7250 924 RRR'.split() print('{};{}'.format(res[0],res[-1]))
Отредактировано marvellik (Авг. 29, 2016 22:46:17)
Офлайн
253
marvellikя этим кодом немного не то хотел сказать.
так результат немного не тот
res[['name_x','name_y']]
list_file_1 = [i.strip() for i in file_1.readlines()]
list_file_1 = file_1.read().split()
if elem in j
([a,i1,i2],[b,i1,i2])
Отредактировано doza_and (Авг. 30, 2016 02:54:47)
Офлайн
0
всем спасибо за помощь с кодом разобрался
Офлайн