我有這個代碼,我建立了一個教程後,我成功地存儲到一個文件。我在物理上檢查了這個文件,以確保信息在那裏。但檢索它給我很難。我盯着它幾個小時,沒有發現任何問題。如果按照步驟2 - 2 1 - 5 - 9重新運行,然後執行步驟6 - 1您會注意到第一組步驟沒有問題,第二組菜單選項沒有。存儲到一個文件,並用Python檢索文件的內容
這就是我所擁有的。
team.py類文件
#Team class definition
class Team:
#initializing object
def __init__(self, name, phone, jersey):
self.__name = name
self.__phone = phone
self.__jersey = jersey
#mutator methods
def setname(self, name):
self.__name = name
def setphone(self, phone):
self.__phone = phone
def setjersey(self, jersey):
self.__jersey = jersey
#accessor methods
def getname(self):
return self.__name
def getphone(self):
return self.__phone
def getjersey(self):
return self.__jersey
#display template for output
def displayData(self):
print("")
print("Team information: ")
print("------------------------")
print("Member's Name:", self.__name)
print("Phone Number:", self.__phone)
print("Jersey Number:", self.__jersey)
members.py程序文件
# program functions and import data
import team
def displayMenu():
print("===========Main Menu===========")
print("1. Team Roster.")
print("2. Add Member.")
print("3. Remove Member.")
print("4. Edit Member.")
print("5. Save Data.")
print("6. Load Data.")
print("9. Exit Program.")
print("")
return int(input("Selection> "))
def printMember(members):
if len(members) == 0:
print("No members in roster yet.")
else:
for x in members.keys():
members[x].displayData()
def addMember(members):
newName = input("Enter new member's name: ")
newPhone = int(input("Enter member's phone number: "))
newJersey = input("Enter member's jersey number: ")
members[newName] = team.Team(newName, newPhone, newJersey)
return members
def removeMember(members):
removeName = input("Enter the member's name you wish to remove: ")
if removeName in members:
del members[removeName]
print("\nYou've removed ", removeName)
else:
print("This name is not in our records.")
return members
def editMember(members):
oldName = input("Enter the name of the member you want to edit: ")
if oldName in members:
newName = input("Enter the member's new name: ")
newPhone = int(input("Enter the member's new phone number: "))
newJersey = input("Enter the member's new jersey number: ")
members[oldName] = team.Team(newName, newPhone, newJersey)
else:
print("Member does not exist")
return members
def saveData(members):
filename = input("Filename to save: ")
print("Saving data...")
outFile = open(filename, "wt")
for x in members.keys():
name = members[x].getname()
phone = str(members[x].getphone())
jersey = members[x].getjersey()
outFile.write(name + "," + phone + "," + jersey + "\n")
print("Data saved.")
outFile.close()
def loadData():
members = {}
filename = input("Filename to load: ")
inFile = open(filename, "rt")
print("Loading data...")
while True:
# read in a line of text from the text file
inLine = inFile.readline()
# if line is empty, stop loading data.
if not inLine:
break
inLine = inLine[:-1]
name, phone, jersey = inLine.split(",")
members[name] = team.Team(name, phone, jersey)
print("Data Loaded Successfully.")
inFile.close()
return members
# Running the program
print("Welcome to the Team Manager")
members = {}
menuSelection = displayMenu()
while menuSelection != 9:
if menuSelection == 1:
printMember(members)
elif menuSelection == 2:
members = addMember(members)
elif menuSelection == 3:
members = removeMember(members)
elif menuSelection == 4:
members = editMember(members)
elif menuSelection == 5:
filename = saveData(members)
elif menuSelection == 6:
filename = loadData()
menuSelection = displayMenu()
print("Exiting Program...")
幫幫我吧,不然我會變成一個酒鬼:)哈哈這裏是IDEONE
請嘗試創建一個[MCVE] –
我通常做@ cricket_007但我最後一次這樣做我得到了我的屁股訓斥不把整個程序。不幸的是,一切或大部分都是需要的。我想我可以簡化它,但不是很多。正如你所看到的步驟都採用不同的方法,我不得不把它們放在這裏,否則沒有人能夠運行它並進行調試。如果它成爲問題,我只會用一個問題重寫它。 – LOTUSMS
那麼,你的問題是加載和保存,對吧?那麼,你爲什麼要展示其他一切? –