38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
import PySimpleGUI as sg
|
|
|
|
sg.SetOptions(button_color=sg.COLOR_SYSTEM_DEFAULT)
|
|
|
|
def GetFilesToCompare():
|
|
with sg.FlexForm('File Compare') as form:
|
|
form_rows = [[sg.Text('Enter 2 files to comare')],
|
|
[sg.Text('File 1', size=(15, 1)), sg.InputText(key='file1'), sg.FileBrowse()],
|
|
[sg.Text('File 2', size=(15, 1)), sg.InputText(key='file2'), sg.FileBrowse(target='file2')],
|
|
[sg.Submit(), sg.Cancel()]]
|
|
button, values = form.LayoutAndRead(form_rows)
|
|
return button, values
|
|
|
|
def main():
|
|
button, values = GetFilesToCompare()
|
|
f1 = values['file1']
|
|
f2 = values['file2']
|
|
if any((button != 'Submit', f1 =='', f2 == '')):
|
|
sg.PopupError('Operation cancelled')
|
|
exit(69)
|
|
|
|
with open(f1, 'rb') as file1:
|
|
with open(f2, 'rb') as file2:
|
|
a = file1.read()
|
|
b = file2.read()
|
|
|
|
for i, x in enumerate(a):
|
|
if x != b[i]:
|
|
sg.Popup('Compare results for files', f1, f2, '**** Mismatch at offset {} ****'.format(i))
|
|
break
|
|
else:
|
|
if len(a) == len(b):
|
|
sg.Popup('**** The files are IDENTICAL ****')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|