如何将包含.txt文件的十六进制值转换为十进制值

时间:2017-08-28 10:17:46

标签: python python-2.7 hex decimal

这是我的output.txt文件

4f337d5000000001
4f337d5000000001
0082004600010000
0082004600010000
334f464600010000
334f464600010000
[... many values omitted ...]
334f464600010000
334f464600010000
4f33464601000100
4f33464601000100

如何在python的帮助下将这些值更改为十进制并保存到新的.txt文件中..

3 个答案:

答案 0 :(得分:2)

由于值为16位十六进制数字,我假设这些是您想要使用的64位整数。如果文件相当小,那么您可以使用read引入整个字符串,split将其分解为单个值:

with open("newfile.txt", 'w') as out_file, open("outfile,txt") as in_file:
    for hex in in_file.read().split():
        print(int(hex, 16), file=out_file)

应该为你做这件事。

答案 1 :(得分:1)

你可以这样做:

with open('output.txt') as f:
    new_file = open("new_file.txt", "w")
    for item in f.readlines():
        new_file.write(str(int(item, 16)) + "\n")
    new_file.close()

答案 2 :(得分:0)

其中一条评论提到了一个shell命令。这就是如何从shell命令行调用Python单行程序(本例中为Linux bash)。 I / O重定向由shell处理。

$ python -c  $'import sys\nfor line in sys.stdin: print(int(line,16))' <hex.txt >dec.txt