Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将uuid4大整数添加到文件_Python_Python 3.x - Fatal编程技术网

Python 将uuid4大整数添加到文件

Python 将uuid4大整数添加到文件,python,python-3.x,Python,Python 3.x,我正试图将一个大整数写入一个文件 该文件包含一个8字节长的ID-我想在文件中写入一个新的随机ID。我使用uuid4生成一个看起来正确但非常大的随机数 new_id = str(uuid.uuid4().int>>64) # generate a 64bit ID. foo = fi.read() # read current file bar = re.search(b'MyOLDID', foo) # search for value fi.seek(bar.start()) ol

我正试图将一个大整数写入一个文件

该文件包含一个8字节长的ID-我想在文件中写入一个新的随机ID。我使用uuid4生成一个看起来正确但非常大的随机数

new_id = str(uuid.uuid4().int>>64) # generate a 64bit ID.
foo = fi.read() # read current file
bar = re.search(b'MyOLDID', foo) # search for value
fi.seek(bar.start())
old_id = fi.read(8)
new_id = uuid.uuid4().int>>64 # generate ID.    
faz = foo.replace(bytes(old_id), new_id)

如何用新id替换旧id?

您可以使用
os.uradom
获取随机字节:

In [1]: import os

In [2]: os.urandom(8)
Out[2]: b'\xe2\xf4~_n.\xe0X'
(来自IPython会话的示例)

如果需要可读字符,请使用base64等对随机数据进行编码

In [3]: import base64

In [4]: base64.b64encode(os.urandom(6))
Out[4]: b'NeCBB8jF'
编码过程使数据更长,因此在这种情况下只需要6个字节

如果您需要数字:

In [5]: ''.join(str(j) for j in os.urandom(4))[:8]
Out[5]: '22310824'

不确定您想要什么…您想要一种生成8字节随机整数的方法,还是想知道如何将UUID保存到文件中?我想要生成随机并替换文件“fi”中的8字节ID。foo是字节,我可以找到我的旧\u id和它的起始位置-当我尝试将整数新\u id转换为字节以写入文件时,我得到了一个内存错误,因为它是一个大整数。这对我非常有用,谢谢-我在这里也尝试了最后一个想法,但最终像第一个示例那样直接将8个随机字节写入文件。