5 回答

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)
注意: 我還沒有測試過這些。

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')

TA貢獻1818條經驗 獲得超11個贊
根據您的調試錯誤,您應該只將dict轉換為str像這樣
with open('cars.txt', 'w') as f:
f.write(str(cars))
f.close()

TA貢獻1876條經驗 獲得超7個贊
在你的 write 語句中,你可以簡單地這樣做:
f.write('\n'.join(car + ''.join(cars[car]) for car in cars))

TA貢獻1843條經驗 獲得超7個贊
這里有多個問題:
該錯誤的意思就是它所說的——你不能將 a 寫入
dict
文件。要解決這個問題,只需將 轉換
dict
為 astr
,如下所示:dict_as_str = str(dict)
,然后f.write(dict_as_str)
一旦你解決了這個問題,看看你擁有什么:你可能不會看到你想要的。這是因為以
f.write
相同的方式轉換它print
,所以如果你運行print(dict_as_str)
,它基本上看起來像一個字典。要解決這個問題,您必須執行不止一行代碼。我不會給你代碼,你需要自己嘗試弄清楚。如果您嘗試但無法使其正常工作,那么您可以發布另一個問題。
添加回答
舉報