如何获取文本文件中十六进制数的长度

How to get the length of a hex number in a text file

我有许多文本文件,每个文件中都有一个长的十六进制数字。我想找出每个十六进制数的长度,即 ['FFFF0F'] =6, ['A23000000000000FD'] =17.

我阅读了以下文件:

file_to_open = open(myFile , 'r')
filey = file_to_open.readlines()

print(type(filey))
a = hex(int(filey, 16))
print(type(a))


n = len(filey)
print('length = ', n)

而我的错误是:

TypeError: int() cannot convert non-string with explicit base

如果我删除以 16 为底的数字,我会收到错误消息:

TypeError : int() argument must be a string, a bytes-like object or a number, not 'list'

关于如何只读入数字并找出它包含多少个十六进制数字的任何想法?

readlines returns list of strs(行)——如果是单行文件,它是一个元素列表。使用 read 将整个文本作为单个 strstrip 前导和尾随空格获取,然后只获取 len:

with open(myFile , 'r') as f:
    filey = f.read()
filey = filey.strip()
n = len(filey)

另请注意,我使用了 with,因此我不必担心自己关闭该文件句柄。我假设你所有的文件都是单行的并且包含一些十六进制数。请注意,如果您的数字有任何前导 0,它们也会被计算在内,因此例如 000F 的长度为 4。