Здравствуйте, я хочу использовать функцию startswith распечатать строки в fileY.txt
, которые НЕ частично совпадают со строками в fileX.txt
В приведенном ниже сценарии я использую fileX.txt
и fileY.txt
в качестве списков. Затем я ищу fileX.txt
для частичного совпадения с fileY.txt
, используя начинается с функции.
Затем я пытаюсь напечатать строки, которые НЕ частично совпадают между fileX.txt
и fileY.txt
. Однако скрипт печатает только последнюю строку в fileY.txt
Любая помощь и предложения будут оценены (я не возражаю, если мне придется использовать вспомогательное приложение, например, sed)
Источник:
#load lines from file into lists
lines1 = [line1.rstrip('\n') for line1 in open('fileX.txt')]
lines2 = [line2.rstrip('\n') for line2 in open('fileY.txt')]
#set lines
set_of_lines1 = set(lines1)
set_of_lines2 = set(lines2)
#set common
common = set_of_lines1 & set_of_lines2
#return lines which partially match as variable e
[e for e in lines1 if e.startswith(tuple(lines2))]
#minus partially matched lines from fileY.txt
difference = set_of_lines2 - e
#print the non matching lines
for color in difference:
print 'The color prefix ' + color + ' does not exist in the list'
файлX.txt:
blue
green
red
файл Y.txt:
blu
gre
re
whi
oran
Что я хочу:
C:\Users\Foo\Bar\Python\Test\>C:\python27\python Test.py
The color prefix whi does not exist in the list
The color prefix oran does not exist in the list
Press any key to continue . . .