đáp tôi đã kết thúc đi với dưa ở cuối nàoLưu từ điển vào một tệp (thay thế cho dưa chuột) bằng Python?
Ok như vậy với một số lời khuyên về một câu hỏi khác tôi hỏi tôi đã nói để sử dụng dưa để cứu một cuốn từ điển vào một tập tin.
Từ điển mà tôi đã cố gắng để lưu vào tập tin đã
members = {'Starspy' : 'SHSN4N', 'Test' : 'Test1'}
Khi dưa lưu nó vào tập tin ... Đây là định dạng
(dp0
S'Test'
p1
S'Test1'
p2
sS'Test2'
p3
S'Test2'
p4
sS'Starspy'
p5
S'SHSN4N'
p6
s.
Bạn có thể xin vui lòng cho tôi một cách khác để lưu chuỗi vào tệp?
Đây là định dạng mà tôi muốn nó để tiết kiệm trong
members = { 'Starspy': 'SHSN4N', 'thử nghiệm': 'Test1'}
Hoàn thành Code:
import sys
import shutil
import os
import pickle
tmp = os.path.isfile("members-tmp.pkl")
if tmp == True:
os.remove("members-tmp.pkl")
shutil.copyfile("members.pkl", "members-tmp.pkl")
pkl_file = open('members-tmp.pkl', 'rb')
members = pickle.load(pkl_file)
pkl_file.close()
def show_menu():
os.system("clear")
print "\n","*" * 12, "MENU", "*" * 12
print "1. List members"
print "2. Add member"
print "3. Delete member"
print "99. Save"
print "0. Abort"
print "*" * 28, "\n"
return input("Please make a selection: ")
def show_members(members):
os.system("clear")
print "\nNames", " ", "Code"
for keys in members.keys():
print keys, " - ", members[keys]
def add_member(members):
os.system("clear")
name = raw_input("Please enter name: ")
code = raw_input("Please enter code: ")
members[name] = code
output = open('members-tmp.pkl', 'wb')
pickle.dump(members, output)
output.close()
return members
#with open("foo.txt", "a") as f:
# f.write("new line\n")
running = 1
while running:
selection = show_menu()
if selection == 1:
show_members(members)
print "\n> " ,raw_input("Press enter to continue")
elif selection == 2:
members == add_member(members)
print members
print "\n> " ,raw_input("Press enter to continue")
elif selection == 99:
os.system("clear")
shutil.copyfile("members-tmp.pkl", "members.pkl")
print "Save Completed"
print "\n> " ,raw_input("Press enter to continue")
elif selection == 0:
os.remove("members-tmp.pkl")
sys.exit("Program Aborted")
else:
os.system("clear")
print "That is not a valid option!"
print "\n> " ,raw_input("Press enter to continue")
Có gì sai với định dạng? Bạn muốn nó như thế nào? –
Tôi muốn lưu thành từ điển thông thường Ví dụ: members = {'Starspy': 'SHSN4N', 'Test': 'Test1'} – wKavey
Xem [Lưu trữ từ điển Python] (http://stackoverflow.com/q/7100125/562769) –