2017-03-16 79 views
0

我想在文本文件中存储大量数字(200-300数字+),所以我想知道是否有内置函数可以将Python中的基数为10的数字转换为基数为256的数字,反之亦然,或者是否有支持此模块的模块(很像默认的hex()函数)。Python内置base-256到base-10转换,反之亦然?

+1

基地256是否有标准?什么是用来表示数字的256个符号? – Denziloe

+2

@Denziloe然后是这个 - https://github.com/Parkayun/base65536 – DeepSpace

+0

高度相关:http://stackoverflow.com/questions/3998605/efficient-binary-to-string-formatting-like-base64-but -for-utf8-utf16(这也与@DeepSpace链接的项目几乎直接相关) –

回答

0

整数具有to_bytes -method:

base256 = number.to_bytes((number.bit_length()+7)//8, 'big') 

number =int.from_bytes(base256, 'big') 
+0

不能将多个数字存储在这样的文件中,因为读取它们时不知道长度。 – interjay

+0

我认为值得注意的是,这仅在Python 3中可用。 –

0

'Base256' 基本上是二进制字节。虽然可以将结果解释为拉丁文编码的文本,但这似乎不太有用。所以我不会将结果文件作为.txt后缀。

除此之外,struct模块用于将数据转换为字节和从字节转换数据。一个相对简单的例子:

>>> import struct 
>>> b = struct.pack('HhL', 33333, -33, 3333333333) 
>>> b 
b'5\x82\xdf\xffU\xa1\xae\xc6' 
>>> struct.unpack('HhL', b) 
(33333, -33, 3333333333) 

在写入或读取文件时,请记住以二进制模式打开。