Odpowiedział skończyło się dzieje z zalewy na końcu i takZapisywanie słownika do pliku (alternatywa dla pikle) w Pythonie?
Ok więc o kilka porad na pytanie innego ja zapytałem powiedziano mi używać marynatę zapisać do pliku słownika.
Słownik że starałem się zapisać do pliku był
members = {'Starspy' : 'SHSN4N', 'Test' : 'Test1'}
Kiedy zalewa zapisać go do pliku ... to był format
(dp0
S'Test'
p1
S'Test1'
p2
sS'Test2'
p3
S'Test2'
p4
sS'Starspy'
p5
S'SHSN4N'
p6
s.
Czy możesz dać mi alternatywny sposób, aby zapisać ciąg do pliku?
Jest to format, że chciałbym to zapisać w
członków = { 'Starspy': 'SHSN4N', 'test': 'Test1'}
kompletny kod:
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")
Co jest nie tak z formatem? Jak by ci się to podobało? –
Chciałbym zapisać jako zwykły słownik. members = {'Starspy': 'SHSN4N', 'Test': 'Test1'} – wKavey
Zobacz [Przechowywanie słowników Python] (http://stackoverflow.com/q/7100125/562769) –