В C, я мог читать «не более 16 символов» имя файла, которое завершается нулем, просто читая его в небольшой буфер:Чтение завершается нулем имя файла из двоичного файла
FILE *fp = fopen("file.bin", "rb");
char filename[16];
fread(filename, 1, 16, fp);
Но в моей Python, я прибегал к фактическому удалению нулевых символов и преобразованию его в ASCII, даже если символы могут быть фактически не ASCII, потому что кажется, что open()
не принимает строки b''
, что могло быть результатом, если я использовал decode("utf-8")
в моем коде вместо этого.
def read_filename(f):
return f.read(16).rstrip(b"\0").decode("ascii")
Есть ли более «стандартный» способ сделать это?