2 回答

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以查看該文件是否已經(jīng)存在并稍等一下
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)
您不必等待,只需添加幾秒鐘即可。如果您每秒處理大量文件,這將導(dǎo)致文件名在時(shí)間上向前漂移。
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)
另一種選擇是在循環(huán)之前獲取單個(gè)時(shí)間戳并隨時(shí)更新它。
mytime = time.strftime("%Y%m%d%H%M%S")
for index, row in enumerate(reader):
....
mytime = f"mytime-{index}"
....

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
每次運(yùn)行循環(huán)時(shí)更改變量名稱,我建議使用 with 語句打開文件,因?yàn)榇蜷_文件后還必須關(guān)閉它
with open(timestr, 'wb') as myfile: myfile.write(mydata)
編輯:我能想象到你的代碼中唯一的缺陷是打開文件后沒有關(guān)閉文件
添加回答
舉報(bào)