加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python:如何动态写入多个文件

发布时间:2020-12-20 11:31:55 所属栏目:Python 来源:网络整理
导读:我顺序记录来自多个流的数据包. 根据每个数据包中的数据,我需要将数据写入特定的日志文件. 我一次最多打开8个文件,以满足最多8个并发数据流的需求 日志文件在新数据流的开始和结束时打开和关闭. 我已经提出以下代码来处理写操作. #Identify where the data n
我顺序记录来自多个流的数据包.
根据每个数据包中的数据,我需要将数据写入特定的日志文件.
我一次最多打开8个文件,以满足最多8个并发数据流的需求
日志文件在新数据流的开始和结束时打开和关闭.

我已经提出以下代码来处理写操作.

#Identify where the data needs to be stored
filePointer = unpack_from('!B',payload,4)

#Grab the data          
capData = unpack_from('!160s',10)         

#Store the data
if filePointer[0] == 1: Logfile1.write(str(capData[0]))
elif filePointer[0] == 2: Logfile2.write(str(capData[0]))
elif filePointer[0] == 3: Logfile3.write(str(capData[0]))
elif filePointer[0] == 4: Logfile4.write(str(capData[0]))
elif filePointer[0] == 5: Logfile5.write(str(capData[0]))
elif filePointer[0] == 6: Logfile6.write(str(capData[0]))
elif filePointer[0] == 7: Logfile7.write(str(capData[0]))
elif filePointer[0] == 8: Logfile8.write(str(capData[0]))

有没有更好的pythony方式来做到这一点?

变量可以以某种方式用于组成文件句柄或返回所需的文件句柄吗?

干杯

POB

解决方法

您可以构建文件列表字典并使用它来动态选择文件:

d = {1: Logfile1,2: Logfile2,...}
curr_file = d[filePointer[0]]
curr_file.write(str(capData[0]))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读