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

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

如何將字典逐行格式寫入文本文件,替換原始文本

如何將字典逐行格式寫入文本文件,替換原始文本

千萬里不及你 2023-06-27 16:44:26
我是編程新手。我目前有如下字典,我想將其寫入文本文件(以行分隔)以替換文本文件中的原始內容。我更改了一些值并添加了新鍵,并且想知道如何去做。下面是我想用其替換原始文本文件的字典:cars={'Honda\n':['10/11/2020\n','red\n','firm and sturdy\n''breaks down occasionally\n'],'Toyota\n':['20/12/2005\n','indigo\n''big and spacious\n', 'fuel saving\n'],'Maserati\n':['10/10/2009\n','silver\n','fast and furious\n','expensive to maintain\n'],'Hyundai\n':['20/10/2000\n','gold\n','solid and reliable\n','slow acceleration\n'] 原始文件:Honda10/11/2010bluestrong and sturdybreaks down occasionallyToyota20/15/2005indigobig and spaciousMaserati10/10/2009silverfast and furiousexpensive to maintainaccident prone所需文件:Honda10/11/2020redfirm and sturdybreaks down occasionallyToyota20/12/2005indigobig and spaciousfuel-savingMaserati10/10/2009silverfast and furiousexpensive to maintainHyundai20/10/2000goldsolid and reliableslow acceleration這是我所做的:with open('cars.txt', 'w') as f:f.write(str(cars))f.close()但它只打印字典而不是所需的文件。我可以知道該怎么做嗎?
查看完整描述

5 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您不能只轉儲字典,因為就該write方法而言,您正在嘗試轉儲內存位置。


您需要像這樣檢查每個字典鍵和項目。您也不需要關閉文件,因為當您離開循環時,with open它會自行關閉。


with open('cars.txt', 'w') as f:

    for car, vals in cars.items:

        f.write(car)

        for val in values:

            f.write(val)


注意: 我還沒有測試過這些。


查看完整回答
反對 回復 2023-06-27
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

首先使用分隔符分割原始文件數據'\n\n'。然后使用字典訪問新數據。然后將結果寫入新文件。


with open('cars.txt') as fp, open('new_cars.txt', 'w') as fw:

    for car in fp.read().split('\n\n'):

        car_name = car.split('\n', 1)[0] + '\n'

        fw.write(car_name + ''.join(cars[car_name]) + '\n')


查看完整回答
反對 回復 2023-06-27
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

根據您的調試錯誤,您應該只將dict轉換為str像這樣


with open('cars.txt', 'w') as f:      

f.write(str(cars)) 

f.close()


查看完整回答
反對 回復 2023-06-27
?
幕布斯6054654

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

在你的 write 語句中,你可以簡單地這樣做:

f.write('\n'.join(car + ''.join(cars[car]) for car in cars))


查看完整回答
反對 回復 2023-06-27
?
藍山帝景

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

這里有多個問題:

  • 該錯誤的意思就是它所說的——你不能將 a 寫入dict文件。

    • 要解決這個問題,只需將 轉換dict為 a str,如下所示:dict_as_str = str(dict),然后f.write(dict_as_str)

  • 一旦你解決了這個問題,看看你擁有什么:你可能不會看到你想要的。這是因為以f.write相同的方式轉換它print,所以如果你運行print(dict_as_str),它基本上看起來像一個字典。

    • 要解決這個問題,您必須執行不止一行代碼。我不會給你代碼,你需要自己嘗試弄清楚。如果您嘗試但無法使其正常工作,那么您可以發布另一個問題。


查看完整回答
反對 回復 2023-06-27
  • 5 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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