當我將一個項目添加到列表list.append()
或list.insert()
或任何其他方法時,當我加載文件備份時,我添加到列表中的項目不存在。此外,我想在另一個文件中的列表,以防萬一它有所作爲。Python將項目添加到列表?
代碼:
User = ["pig"]
Pass = ["ham"]
User.insert(len(User)+1, "cow")
Pass.append("beef")
我知道如何從其他文件得到的東西。
當我將一個項目添加到列表list.append()
或list.insert()
或任何其他方法時,當我加載文件備份時,我添加到列表中的項目不存在。此外,我想在另一個文件中的列表,以防萬一它有所作爲。Python將項目添加到列表?
代碼:
User = ["pig"]
Pass = ["ham"]
User.insert(len(User)+1, "cow")
Pass.append("beef")
我知道如何從其他文件得到的東西。
try: #load list from file if it (the file) exists
my_list = json.load(open("my_database.dat"))
except IOError: #otherwise create the list
my_list = []
...
#save list for next time ..
json.dump(my_list,open("my_database.dat","wb"))
是許多方法可以做到這
你也可以使用泡菜
try: #load list from file if it (the file) exists
my_list = pickle.load(open("my_database.dat"))
except IOError: #otherwise create the list
my_list = []
...
#save list for next time ..
pickle.dump(my_list,open("my_database.dat","wb"))
或做它用ast.literal_eval
try:
my_list = ast.literal_eval(open("some_file").read())
except IOError:
my_list = []
...
#save list
with open("some_file","wb") as f:
f.write(repr(my_list))
對於之間的簡單數據持久化的一個在一個良好的開端運行pickle:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pickle
def main():
# Load the file if it exists other initialise the list
try:
replicating_cow = pickle.load(open("cows.p", "rb"))
except IOError:
replicating_cow = []
replicating_cow.append('cow') # Add another cow
print replicating_cow # Print the list
pickle.dump(replicating_cow, open("cows.p", "wb")) # Save the list to disk
if __name__ == "__main__":
main()
每次運行後,我們得到一個新的牛:
$ python replicate_cow.py
['cow']
$ python replicate_cow.py
['cow', 'cow']
$ python replicate_cow.py
['cow', 'cow', 'cow']
$ python replicate_cow.py
['cow', 'cow', 'cow', 'cow']
對不起,我按下意外輸入它說Pass = pickle.load(打開(「Password.p」)) TypeError:'str'不支持緩衝接口 – user3116196
http://www.mentalfloss.com/sites/default/legacy/blogs/wp-content/uploads/2010/02/400pancake_bunny。 jpg –
第一次請求:請不要大寫你的變量名;符合Python風格指南。第二個要求:請重申您的問題,這是沒有道理的。當你說「加載文件備份」,你的意思是再次運行你的Python腳本? – bedwyr
您現在使用哪些代碼從文件加載列表?你有沒有任何代碼在你修改後保存列表? –