сравнить два файла в Python - PullRequest
0 голосов
/ 26 марта 2010

в текстовом формате. У меня есть текст (строка одна за другой)

login;user;name
login;user;name1
login;user

в b.txt у меня есть текст

login;user
login;user
login;user;name2

после сравнения должен отображаться в текстовом файле как

login;user;name
login;user;name1
login;user;name2.... 

Как это можно сделать с помощью python?

Ответы [ 3 ]

4 голосов
/ 26 марта 2010
for a, b in zip(open('a'), open('b')):
    print(a if len(a.split(';')) == 3 else b)
1 голос
/ 26 марта 2010

Возможно, вам поможет модуль Standard-lib difflib - ознакомьтесь с его документацией. Ваш вопрос недостаточно ясен для более полного ответа.

0 голосов
/ 27 марта 2010

Исходя из приведенной расплывчатой ​​информации, я бы попробовал что-то вроде следующего:

import itertools

def merger(fni1, fni2):
    "merge two files ignoring 'login;user\n' lines"
    fp1= open(fni1, "r")
    fp2= open(fni2, "r")
    try:
        for line in itertools.chain(fp1, fp2):
            if line != "login;user\n":
                yield line
    finally:
        fp1.close()
        fp2.close()

def merge_to_file(fni1, fni2, fno):
    with open(fno, "w") as fp:
        fp.writelines(merger(fni1, fni2))

merge_to_file - это функция, которую вы должны использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...