亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中保存多個文件

在Python中保存多個文件

慕的地8271018 2024-01-15 21:36:06
我試圖在每次運行以下命令時創建一個新文件。目前它會創建 1 個文件并覆蓋它。是否有一個方法可以使其不覆蓋并為每個循環創建一個新文件?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貢獻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}"

     ....


查看完整回答
反對 回復 2024-01-15
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

每次運行循環時更改變量名稱,我建議使用 with 語句打開文件,因為打開文件后還必須關閉它

with open(timestr, 'wb') as myfile:
    myfile.write(mydata)

編輯:我能想象到你的代碼中唯一的缺陷是打開文件后沒有關閉文件


查看完整回答
反對 回復 2024-01-15
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號