第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Python中保存多個(gè)文件

在Python中保存多個(gè)文件

慕的地8271018 2024-01-15 21:36:06
我試圖在每次運(yùn)行以下命令時(shí)創(chuàng)建一個(gè)新文件。目前它會(huì)創(chuàng)建 1 個(gè)文件并覆蓋它。是否有一個(gè)方法可以使其不覆蓋并為每個(gè)循環(huán)創(chuàng)建一個(gè)新文件?import xml.etree.ElementTree as ETimport timeimport csvwith open('OrderCSV.csv', newline='') as csvfile:    reader = csv.DictReader(csvfile)    for row in reader:        orders_data = ET.Element('orders_data')        orders = ET.SubElement(orders_data, 'orders')        ##Order Details        order_reference = ET.SubElement(orders, 'order reference')        order_reference.set('',"12345")        order_date = ET.SubElement(order_reference, 'order_date')        order_priority  = ET.SubElement(order_reference, 'order_priority')        order_category = ET.SubElement(order_reference, 'order_category')        delivery_service = ET.SubElement(order_reference, 'delivery_service')        delivery_service.text = row['delivery_service']        timestr = time.strftime("%Y%m%d%H%M%S")        mydata = ET.tostring(orders_data)        myfile = open(timestr, "wb")        myfile.write(mydata)
查看完整描述

2 回答

?
jeck貓

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}"

     ....


查看完整回答
反對(duì) 回復(fù) 2024-01-15
?
當(dāng)年話下

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)閉文件


查看完整回答
反對(duì) 回復(fù) 2024-01-15
  • 2 回答
  • 0 關(guān)注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)