复现项目中一系列函数:eval、with open() as、with mmap.mmap() as、struct.pack()、flush简介

ori = eval(request.form['orientationAngles'])
history[0] = ori + [eval(request.form['time']), ]
with open('../../shared_memory/predicted.txt', 'rb+') as f:
	with mmap.mmap(f.fileno(), 48, access=mmap.ACCESS_WRITE) as mm:
		mm[:] = struct.pack('fffqfffq',
        -np.rad2deg(history[0][1]),
        -np.rad2deg(history[29][1]),
                                   )
        mm.flush()

eval()
用于执行一个字符串表达式,并返回表达式的计算结果;即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。

with open(… ‘rb+’) as f
用’rb’模式表示打开二进制文件,用’rb+'模式表示对二进制文件进行读写。
他会在使用完毕后,自动关闭文件,相对open()省去了写close()的麻烦。

with mmap.mmap(f.fileno(), 48, access=mmap.ACCESS_WRITE) as mm:
使用mmap()函数可以创建一个内存映射文件。该函数的第1个参数是一个文件描述符,可以通过file对象的fileno()函数获取;第2个参数是要映射的文件部分大小(单位字节),如果该值为0,映射整个文件,如果该参数大于文件大小,则扩展该文件。

mm[:]
则是写文件的过程

struct.pack
struct.pack用于将Python的值根据格式符,转换为字符串。
'ff’是格式字符串,后面的每个参数必须与格式字符串描述一致。
-np.rad2deg(history[0][1]),-np.rad2deg(history[29][1])表示要转换的python值。
f: float
q: long long

np.rad2deg
将角度从弧度转换为度。

flush
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值