Как получить длину шестнадцатеричного числа в текстовом файле - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть несколько текстовых файлов с одним длинным шестнадцатеричным числом внутри каждого файла. Я хочу узнать длину каждого шестнадцатеричного числа, то есть ['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'

Любые идеи о том, как просто прочитать число и найти, сколько шестнадцатеричных цифр это содержит?

1 Ответ

1 голос
/ 12 февраля 2020

readlines возвращает list из str с (строк) - в случае однострочного файла это список с одним элементом. Используйте read, чтобы получить весь текст как один str, strip начальные и конечные пробелы, затем просто получите len:

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

Обратите внимание, что я использовал with, поэтому я не Я должен заботиться о закрытии этого файла самостоятельно. Я предполагаю, что все ваши файлы однострочные и содержат некоторое шестнадцатеричное число. Обратите внимание, что если у вашего номера есть любые ведущие 0 s, они тоже будут учитываться, поэтому, например, длина 000F равна 4.

...