У меня есть два файла: один - это пользовательский ввод f1, а другой - база данных. F2.I хочу выполнить поиск, если строки из f1 находятся в базе данных (f2). Если не печатать те, которые не существуют, если f2. У меня есть проблемы с моим кодом, не работает нормально: Вот f1:python, сравнить два файла и получить разницу
rbs003491
rbs003499
rbs003531
rbs003539
rbs111111
Здесь f2:
AHPTUR13,rbs003411
AHPTUR13,rbs003419
AHPTUR13,rbs003451
AHPTUR13,rbs003459
AHPTUR13,rbs003469
AHPTUR13,rbs003471
AHPTUR13,rbs003479
AHPTUR13,rbs003491
AHPTUR13,rbs003499
AHPTUR13,rbs003531
AHPTUR13,rbs003539
AHPTUR13,rbs003541
AHPTUR13,rbs003549
AHPTUR13,rbs003581
В этом случае было бы вернуть rbs11111
, потому что это не в f2 , Кодекс:
with open(c,'r') as f1:
s1 = set(x.strip() for x in f1)
print s1
with open("/tmp/ARNE/blt",'r') as f2:
for line in f2:
if line not in s1:
print line
Вы всегда можете подавать данные из каждого файла в строку и использовать [difflib] (http://pymotw.com/2/difflib/), который является встроенным модулем. Если ваша «база данных» - это база данных sqlite или mysql, то это, вероятно, не сработает, но я предполагаю, что когда вы говорите базу данных, вы просто имеете в виду файл, содержащий данные. Дайте мне знать, если это предположение неверно. – DuckPuncher