2017-06-06 9 views
-2

Ich habe eine Datei, die in jeder Zeile einige Hexadezimalzahlen enthält. Zum Beispiel:Wie konvertiert man Hexadezimal in Python?

5B35E8DF4A709CA16A1C8BC29022E83C 
28958FA134D53BE6F382D04DC9891922 
C67FC50F905F043EBEFEBFAF243B8744 
99DCD61A89EE5553DDCA44378C3CE3C6 
........... 

Ich möchte sie von Großbuchstaben in Kleinbuchstaben konvertieren. Zum Beispiel:

5b35e8df4a709ca16a1c8bc29022e83c 

Srcpath ='Uppercase_File' 
Destpath ='Lowercase_File' 
with open(Srcpath, 'r') as f: 
    with open(Destpath, 'w') as fp: 
     for key in f: 
      print(key) 
      #key_Separated=[key[i:i+2] for i in range(0, len(key), 2)] 
      rejoined = key.replace(" ","").decode('hex') 
      print(rejoined) 
      fp.write(rejoined) 
    fp.close() 

Mein Code gibt mir diese Fehlermeldung:

rejoined = key.decode('hex') 
File "/usr/lib64/python2.7/encodings/hex_codec.py", line 42, in hex_decode 
    output = binascii.a2b_hex(input) 
TypeError: Non-hexadecimal digit found 
+5

Was ist los mit ['s.lower()'] (https://docs.python.org/2/library/stdtypes.html#str.islower)? – khelwood

Antwort

1

Sie können diese verwenden, um einen Wert von Dezimal in Hex zu konvertieren:

>>> hex(65) 
'0x41' 

Aber wenn Sie wollen nur zu konvertieren Sie die Buchstaben in Kleinbuchstaben, warum verwenden Sie nicht .lower() Methode:

>>> s = "AABA67A79A" 
>>> s.lower() 
'aaba67a79a' 

https://docs.python.org/2/library/string.html

Verwandte Themen