2 回答
TA贡献1909条经验 获得超7个赞
您可以查看该文件是否已经存在并稍等一下
while True:
timestr = time.strftime("%Y%m%d%H%M%S")
if not os.path.exists(timestr):
break
time.sleep(.1)
with open(timestr, "wb") as myfile:
mydata = ET.tostring(orders_data)
myfile.write(mydata)
您不必等待,只需添加几秒钟即可。如果您每秒处理大量文件,这将导致文件名在时间上向前漂移。
mytime = time.time()
while True:
timestr = time.strftime("%Y%m%d%H%M%S", time.localtime(mytime))
if not os.path.exists(timestr):
break
time.sleep(.1)
with open(timestr, "wb") as myfile:
mydata = ET.tostring(orders_data)
myfile.write(mydata)
另一种选择是在循环之前获取单个时间戳并随时更新它。
mytime = time.strftime("%Y%m%d%H%M%S")
for index, row in enumerate(reader):
....
mytime = f"mytime-{index}"
....
TA贡献1890条经验 获得超9个赞
每次运行循环时更改变量名称,我建议使用 with 语句打开文件,因为打开文件后还必须关闭它
with open(timestr, 'wb') as myfile: myfile.write(mydata)
编辑:我能想象到你的代码中唯一的缺陷是打开文件后没有关闭文件
添加回答
举报