почему мой код дает мне другие результаты, чем ожидалось - PullRequest
1 голос
/ 24 октября 2019

Я работаю над кодом, чтобы прочитать 2 шестнадцатеричных файла, записать разницу и преобразовать (using binascii.unhexify()) в десятичное значение, чтобы я мог просмотреть его и внести изменения.

Я пытался преобразовать егообратно в шестнадцатеричный формат с обратным (binascii.hexify()), но это дает мне вывод, отличный от того, что я ожидал.

Я попытался скопировать отдельные строки и преобразовать его обратно в шестнадцатеричный формат, и это дает мне желаемый вывод.

Похоже, проблема в чтении файла и разборе отдельных строк функции.

    def read_file(fst, scd):  
        with open(fst) as f:  
            g = f.read().splitlines()  
        with open (scd) as ref:  
            ref_lines = ref.read().splitlines()  
        return g, ref_lines  

    def compare(run, sta):  
        with open("unum_change.txt", "w+") as diff:  
            for i in range(len(run)):  
                if run[i] != sta[i]:  
                    diff.write(f"{binascii.unhexlify(g[i][1:])}\n") 

Проблема в следующем коде:

    def trans ():  
        with open ('unum_change.txt', 'rb') as change, open ('reconv_change.txt', 'w') as file2:  
            contents = change.readlines()  
            for j in range(len(contents)):  
                file2.write(f"{binascii.hexlify(contents[j])}\n")

Желаемый вывод должен быть в следующем формате:

104A80000A0000000D0A0000554E49543A20303308

Но вместо этого я получаю такой формат:

62275c7831304a5c7838305c7830305c6e5c7830305c7830305c7830305c725c6e5c7830305c783030554e49543a2030395c7427200d0a
...