2017-04-26 80 views
0

我有一個python腳本,它包含字典,並用作執行計算的另一個python腳本的輸入。我想使用第一個用作輸入的腳本,以在字典中創建具有完全相同結構但密鑰值不同的更多腳本。如何將包含字典的python腳本複製到新的python腳本中?

原創劇本:Car1.py

Owner = { 
"Name": "Jim", 
"Surname": "Johnson", 
} 

Car_Type = { 
"Make": "Ford", 
"Model": "Focus", 
"Year": "2008" 
} 

Car_Info = { 
"Fuel": "Gas", 
"Consumption": 5, 
"Max Speed": 190 
} 

我希望能夠創建具有相同格式的輸入文件,但針對不同的情況下,例如

新的腳本:Car2.py

Owner = { 
"Name": "Nick", 
"Surname": "Perry", 
} 

Car_Type = { 
"Make": "BMW", 
"Model": "528", 
"Year": "2015" 
} 

Car_Info = { 
"Fuel": "Gas", 
"Consumption": 10, 
"Max Speed": 280 
} 

到目前爲止,我只看到,只打印鍵,並在新文件中的值而不是字典的實際名稱以及答案。有人可以提供一些幫助嗎?提前致謝!

+3

目前還不清楚你在問什麼,但是你可能會誤解Python文件和數據文件。 Python文件並不是存儲數據的一種方式,儘管它在技術上是可行的,但這不是一個好主意,你不會找到太多的支持。使用適當的數據格式... YAML,JSON ...選項很多。 – spectras

+0

字典的詞典怎麼樣,'d = {'所有者':{}}'。因此,當您想要打印字典的名稱時,可以在Python 2中執行print(d.keys())或print d.keys()。 – John

+1

這些是包含_Python code_的Python文件。你想執行這個數據還是隻是爲了存儲,訪問和修改它?如果是後者,則需要另一個存儲設施,如SQL或僅僅是JSON或類似的東西。現在,如果你想修改數據,唯一的方法就是使用你的好朋友_the keyboard_和Ctrl + C&Ctrl + V。或者,如果您使用任何資源,則從某些資源中自動提取該數據。 – ForceBru

回答

0

閱讀的東西的文件中像

text=open('yourfile.py','r').read().split('\n') 

,然後解釋字符串你......之後的列表中,您可以用保存的東西像

new_text = open('newfile.py','w') 
[new_text.write(line) for line in text] 
new_text.close() 

爲spectras前面所說,不理想......但如果這就是你想要做的...去爲它

0

如果你真的想這樣做(不建議,因爲在評論中說的原因是由spectras和良好的可選)並導入你輸入的Python文件:

This問題有關如何從導入的模塊中讀出字典名稱的答案。 (使用模塊上的dict(),同時過濾不以「__」開頭的變量) 然後獲取字典條目的新值並構建新的字典。 最後,您需要編寫一個導出程序,用於以Python可讀格式存儲數據,就像構建普通文本文件一樣。

我不認爲只是將其存儲在存儲格式中才有優勢。