Форум сайта python.su
Здравствуйте. Подскажите начинающему ..
Хочу подсчитать кол-во комбинаций байтов в формате hex в файле с помощью метода .count().
Но после преобразования очередного числа из цикла к требуемому виду, то возникает вполне логичная)) ошибка несовместимости типов:
TypeError: argument should be integer or bytes-like object, not ‘str’
вот часть кода
with open('123.bin', ‘rb’) as binary_file:
i = 0
found = # список куда будем сохранять рез. расчетов
… for i in range(256):
……..for_count = “b'” + str(hex(i)) + “'” # чтоб привести к виду- b'\x00'
……..cnt = binary_file.read().count(for_count) # так работает: cnt = binary_file.read().count(b'\x00'),
# но нужно по циклу все байты посчитать
Как зациклить расчет или правильно преобразовать тип?
Спасибо.
Отредактировано jo_big_jo (Фев. 19, 2022 19:03:26)
Офлайн
>>> for i in range(256): ... byte = bytes([i]) ... print(byte) ... b'\x00' b'\x01' b'\x02' b'\x03' b'\x04' b'\x05' b'\x06' b'\x07' b'\x08' b'\t' b'\n' b'\x0b' b'\x0c' b'\r' b'\x0e' b'\x0f' b'\x10' b'\x11' b'\x12' b'\x13' b'\x14' b'\x15' b'\x16' b'\x17' b'\x18' b'\x19' b'\x1a' b'\x1b' b'\x1c' b'\x1d' b'\x1e' b'\x1f' b' ' b'!' b'"' b'#' b'$' b'%' b'&' b"'" b'(' b')' b'*' b'+' b',' b'-' b'.' b'/' b'0' b'1' b'2' b'3' b'4' b'5' b'6' b'7' b'8' b'9' b':' b';' b'<' b'=' b'>' b'?' b'@' b'A' b'B' b'C' b'D' b'E' b'F' b'G' b'H' b'I' b'J' b'K' b'L' b'M' b'N' b'O' b'P' b'Q' b'R' b'S' b'T' b'U' b'V' b'W' b'X' b'Y' b'Z' b'[' b'\\' b']' b'^' b'_' b'`' b'a' b'b' b'c' b'd' b'e' b'f' b'g' b'h' b'i' b'j' b'k' b'l' b'm' b'n' b'o' b'p' b'q' b'r' b's' b't' b'u' b'v' b'w' b'x' b'y' b'z' b'{' b'|' b'}' b'~' b'\x7f' b'\x80' b'\x81' b'\x82' b'\x83' b'\x84' b'\x85' b'\x86' b'\x87' b'\x88' b'\x89' b'\x8a' b'\x8b' b'\x8c' b'\x8d' b'\x8e' b'\x8f' b'\x90' b'\x91' b'\x92' b'\x93' b'\x94' b'\x95' b'\x96' b'\x97' b'\x98' b'\x99' b'\x9a' b'\x9b' b'\x9c' b'\x9d' b'\x9e' b'\x9f' b'\xa0' b'\xa1' b'\xa2' b'\xa3' b'\xa4' b'\xa5' b'\xa6' b'\xa7' b'\xa8' b'\xa9' b'\xaa' b'\xab' b'\xac' b'\xad' b'\xae' b'\xaf' b'\xb0' b'\xb1' b'\xb2' b'\xb3' b'\xb4' b'\xb5' b'\xb6' b'\xb7' b'\xb8' b'\xb9' b'\xba' b'\xbb' b'\xbc' b'\xbd' b'\xbe' b'\xbf' b'\xc0' b'\xc1' b'\xc2' b'\xc3' b'\xc4' b'\xc5' b'\xc6' b'\xc7' b'\xc8' b'\xc9' b'\xca' b'\xcb' b'\xcc' b'\xcd' b'\xce' b'\xcf' b'\xd0' b'\xd1' b'\xd2' b'\xd3' b'\xd4' b'\xd5' b'\xd6' b'\xd7' b'\xd8' b'\xd9' b'\xda' b'\xdb' b'\xdc' b'\xdd' b'\xde' b'\xdf' b'\xe0' b'\xe1' b'\xe2' b'\xe3' b'\xe4' b'\xe5' b'\xe6' b'\xe7' b'\xe8' b'\xe9' b'\xea' b'\xeb' b'\xec' b'\xed' b'\xee' b'\xef' b'\xf0' b'\xf1' b'\xf2' b'\xf3' b'\xf4' b'\xf5' b'\xf6' b'\xf7' b'\xf8' b'\xf9' b'\xfa' b'\xfb' b'\xfc' b'\xfd' b'\xfe' b'\xff' >>>
>>> for i in range(256): ... byte = bytes([i]) ... data = b'\x00\x40\x00\x01\x09\xff' ... print(byte, '->', data, '->', data.count(byte)) ... b'\x00' -> b'\x00@\x00\x01\t\xff' -> 2 b'\x01' -> b'\x00@\x00\x01\t\xff' -> 1 b'\x02' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x03' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x04' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x05' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x06' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x07' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x08' -> b'\x00@\x00\x01\t\xff' -> 0 b'\t' -> b'\x00@\x00\x01\t\xff' -> 1 b'\n' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x0b' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x0c' -> b'\x00@\x00\x01\t\xff' -> 0 b'\r' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x0e' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x0f' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x10' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x11' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x12' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x13' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x14' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x15' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x16' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x17' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x18' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x19' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1a' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1b' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1c' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1d' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1e' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x1f' -> b'\x00@\x00\x01\t\xff' -> 0 b' ' -> b'\x00@\x00\x01\t\xff' -> 0 b'!' -> b'\x00@\x00\x01\t\xff' -> 0 b'"' -> b'\x00@\x00\x01\t\xff' -> 0 b'#' -> b'\x00@\x00\x01\t\xff' -> 0 b'$' -> b'\x00@\x00\x01\t\xff' -> 0 b'%' -> b'\x00@\x00\x01\t\xff' -> 0 b'&' -> b'\x00@\x00\x01\t\xff' -> 0 b"'" -> b'\x00@\x00\x01\t\xff' -> 0 b'(' -> b'\x00@\x00\x01\t\xff' -> 0 b')' -> b'\x00@\x00\x01\t\xff' -> 0 b'*' -> b'\x00@\x00\x01\t\xff' -> 0 b'+' -> b'\x00@\x00\x01\t\xff' -> 0 b',' -> b'\x00@\x00\x01\t\xff' -> 0 b'-' -> b'\x00@\x00\x01\t\xff' -> 0 b'.' -> b'\x00@\x00\x01\t\xff' -> 0 b'/' -> b'\x00@\x00\x01\t\xff' -> 0 b'0' -> b'\x00@\x00\x01\t\xff' -> 0 b'1' -> b'\x00@\x00\x01\t\xff' -> 0 b'2' -> b'\x00@\x00\x01\t\xff' -> 0 b'3' -> b'\x00@\x00\x01\t\xff' -> 0 b'4' -> b'\x00@\x00\x01\t\xff' -> 0 b'5' -> b'\x00@\x00\x01\t\xff' -> 0 b'6' -> b'\x00@\x00\x01\t\xff' -> 0 b'7' -> b'\x00@\x00\x01\t\xff' -> 0 b'8' -> b'\x00@\x00\x01\t\xff' -> 0 b'9' -> b'\x00@\x00\x01\t\xff' -> 0 b':' -> b'\x00@\x00\x01\t\xff' -> 0 b';' -> b'\x00@\x00\x01\t\xff' -> 0 b'<' -> b'\x00@\x00\x01\t\xff' -> 0 b'=' -> b'\x00@\x00\x01\t\xff' -> 0 b'>' -> b'\x00@\x00\x01\t\xff' -> 0 b'?' -> b'\x00@\x00\x01\t\xff' -> 0 b'@' -> b'\x00@\x00\x01\t\xff' -> 1 b'A' -> b'\x00@\x00\x01\t\xff' -> 0 b'B' -> b'\x00@\x00\x01\t\xff' -> 0 b'C' -> b'\x00@\x00\x01\t\xff' -> 0 b'D' -> b'\x00@\x00\x01\t\xff' -> 0 b'E' -> b'\x00@\x00\x01\t\xff' -> 0 b'F' -> b'\x00@\x00\x01\t\xff' -> 0 b'G' -> b'\x00@\x00\x01\t\xff' -> 0 b'H' -> b'\x00@\x00\x01\t\xff' -> 0 b'I' -> b'\x00@\x00\x01\t\xff' -> 0 b'J' -> b'\x00@\x00\x01\t\xff' -> 0 b'K' -> b'\x00@\x00\x01\t\xff' -> 0 b'L' -> b'\x00@\x00\x01\t\xff' -> 0 b'M' -> b'\x00@\x00\x01\t\xff' -> 0 b'N' -> b'\x00@\x00\x01\t\xff' -> 0 b'O' -> b'\x00@\x00\x01\t\xff' -> 0 b'P' -> b'\x00@\x00\x01\t\xff' -> 0 b'Q' -> b'\x00@\x00\x01\t\xff' -> 0 b'R' -> b'\x00@\x00\x01\t\xff' -> 0 b'S' -> b'\x00@\x00\x01\t\xff' -> 0 b'T' -> b'\x00@\x00\x01\t\xff' -> 0 b'U' -> b'\x00@\x00\x01\t\xff' -> 0 b'V' -> b'\x00@\x00\x01\t\xff' -> 0 b'W' -> b'\x00@\x00\x01\t\xff' -> 0 b'X' -> b'\x00@\x00\x01\t\xff' -> 0 b'Y' -> b'\x00@\x00\x01\t\xff' -> 0 b'Z' -> b'\x00@\x00\x01\t\xff' -> 0 b'[' -> b'\x00@\x00\x01\t\xff' -> 0 b'\\' -> b'\x00@\x00\x01\t\xff' -> 0 b']' -> b'\x00@\x00\x01\t\xff' -> 0 b'^' -> b'\x00@\x00\x01\t\xff' -> 0 b'_' -> b'\x00@\x00\x01\t\xff' -> 0 b'`' -> b'\x00@\x00\x01\t\xff' -> 0 b'a' -> b'\x00@\x00\x01\t\xff' -> 0 b'b' -> b'\x00@\x00\x01\t\xff' -> 0 b'c' -> b'\x00@\x00\x01\t\xff' -> 0 b'd' -> b'\x00@\x00\x01\t\xff' -> 0 b'e' -> b'\x00@\x00\x01\t\xff' -> 0 b'f' -> b'\x00@\x00\x01\t\xff' -> 0 b'g' -> b'\x00@\x00\x01\t\xff' -> 0 b'h' -> b'\x00@\x00\x01\t\xff' -> 0 b'i' -> b'\x00@\x00\x01\t\xff' -> 0 b'j' -> b'\x00@\x00\x01\t\xff' -> 0 b'k' -> b'\x00@\x00\x01\t\xff' -> 0 b'l' -> b'\x00@\x00\x01\t\xff' -> 0 b'm' -> b'\x00@\x00\x01\t\xff' -> 0 b'n' -> b'\x00@\x00\x01\t\xff' -> 0 b'o' -> b'\x00@\x00\x01\t\xff' -> 0 b'p' -> b'\x00@\x00\x01\t\xff' -> 0 b'q' -> b'\x00@\x00\x01\t\xff' -> 0 b'r' -> b'\x00@\x00\x01\t\xff' -> 0 b's' -> b'\x00@\x00\x01\t\xff' -> 0 b't' -> b'\x00@\x00\x01\t\xff' -> 0 b'u' -> b'\x00@\x00\x01\t\xff' -> 0 b'v' -> b'\x00@\x00\x01\t\xff' -> 0 b'w' -> b'\x00@\x00\x01\t\xff' -> 0 b'x' -> b'\x00@\x00\x01\t\xff' -> 0 b'y' -> b'\x00@\x00\x01\t\xff' -> 0 b'z' -> b'\x00@\x00\x01\t\xff' -> 0 b'{' -> b'\x00@\x00\x01\t\xff' -> 0 b'|' -> b'\x00@\x00\x01\t\xff' -> 0 b'}' -> b'\x00@\x00\x01\t\xff' -> 0 b'~' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x7f' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x80' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x81' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x82' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x83' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x84' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x85' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x86' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x87' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x88' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x89' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8a' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8b' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8c' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8d' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8e' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x8f' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x90' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x91' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x92' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x93' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x94' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x95' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x96' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x97' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x98' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x99' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9a' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9b' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9c' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9d' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9e' -> b'\x00@\x00\x01\t\xff' -> 0 b'\x9f' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xa9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xaa' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xab' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xac' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xad' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xae' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xaf' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xb9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xba' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xbb' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xbc' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xbd' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xbe' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xbf' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xc9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xca' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xcb' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xcc' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xcd' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xce' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xcf' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xd9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xda' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xdb' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xdc' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xdd' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xde' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xdf' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xe9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xea' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xeb' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xec' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xed' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xee' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xef' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf0' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf1' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf2' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf3' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf4' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf5' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf6' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf7' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf8' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xf9' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xfa' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xfb' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xfc' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xfd' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xfe' -> b'\x00@\x00\x01\t\xff' -> 0 b'\xff' -> b'\x00@\x00\x01\t\xff' -> 1 >>>
Отредактировано py.user.next (Фев. 19, 2022 01:41:19)
Офлайн
Спасибо большое!
Офлайн