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

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

如何在python中同時讀取和寫入打開腌制文件?

如何在python中同時讀取和寫入打開腌制文件?

米琪卡哇伊 2022-09-20 15:14:55
如何在python中同時讀取和寫入打開腌制文件?有沒有辦法做到這一點,或者它是不可能的。
查看完整描述

3 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

我不贊成使用這樣的代碼,相反,我會敦促你用你試圖解決的實際問題來更新問題,而不是有可能在讀寫模式下打開一個泡菜對象。將其包裝在嘗試中的原因除外,這是在泡菜文件不存在時第一次運行,因此我們將創建它。


import pickle


try:

    with open("my_pickle.file", "rb+") as pickle_file:

        mylist = pickle.load(pickle_file)

        mylist = [i * 2 for i in mylist]

        pickle_file.seek(0)

        pickle.dump(mylist, pickle_file)

        print(mylist)

except FileNotFoundError as fnfe:

    with open("my_pickle.file", "wb") as pickle_file:

        pickle.dump([1, 2, 3], pickle_file)

運行此腳本 5 次,第一次創建腌制對象,接下來 4 次,它將使列表中的值加倍


輸出


[1, 2, 3]

[2, 4, 6]

[4, 8, 12]

[8, 16, 24]

[16, 32, 48]

但同樣,這不是我會推薦的東西。相反,如果您使用實際代碼和問題更新問題,則可能有更好的方法來解決此問題并獲得其他答案。


查看完整回答
反對 回復 2022-09-20
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

不可能。


為此,請打開 2 個文件指針,一個用于讀取,另一個用于寫入。對于寫入指針,將其命名為“文件.tmp”或其他名稱。寫入此文件后,可以將另一個文件替換為新文件。偽代碼是:file.tmp


f1 = open('hello.txt', 'r')

f2 = open('hello.txt.tmp', 'w')


f1_contents = f1.read()

# do something with f1_contents

f2.write(f1_contents)


f1.close(); f2.close()


import os

os.rename('hello.txt.tmp', 'hello.txt')


查看完整回答
反對 回復 2022-09-20
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

您應該更多地了解您想要實現的目標。

正確讀取包含多個對象的泡菜文件會很棘手 - 您必須在對象的開頭和結尾處保留一個帶有索引的側結構。

總而言之,使用sqlite3更容易,用它創建一個數據庫文件,其中包含一個表(將其命名為“泡菜”),該表可能只包含兩列:一個用于腌制對象的ID,以及序列化對象本身。


查看完整回答
反對 回復 2022-09-20
  • 3 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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