このコードは読み込み機能にエラーがありますが、何が原因であるのかわかりません。私は別のファイルからクラス定義をインポートしていますが、プログラムはファイルをコンピュータのテキストとして保存し、プログラムはデータをロードすると通知しますが、データの表示を呼び出すときにエラーが発生しました。テキストファイルをロードする際の問題
from roster2 import rosterClass
outFile = open("c:\roster.txt", "wt")
outFile.write("The text and data will be save as a file on c:\roster.txt")
outFile.close()
inFile = open("c:\roster.txt", "rt")
contents = inFile.read()
print (contents)
def saveData(roster):
filename = input("Enter file name:")
print("Saving file.....")
outFile = open(filename, "wt")
for x in roster.keys():
name = roster[x].getname()
phone = roster[x].getphone()
jersey = str(roster[x].getjersey())
outFile.write(name+","+phone+","+jersey+"\n")
print("File saved.")
outFile.close()
def loadData():
roster = {}
filename = input("Enter file to load: ")
inFile = open(filename, "rt")
print("Loading data......")
while True:
inLine = inFile.readline()
if not inLine:
break
inLine = inLine[:-1]
name, phone, jersey = inLine.split(",")
roster[name] = name, phone, jersey
print("Roster data loaded succesfully")
inFile.close()
return roster
def displayMenu():
print ("======Main Menu======")
print ("1. Display roster ")
print ("2. Add player:")
print ("3. Remove player: ")
print ("4. Edit player information.")
print ("5. Save data.")
print ("6. Load data.")
print ("9. Exit Program")
print ("")
return int(input("Select a number to continue: "))
def printRoster(roster):
if len(roster) == 0:
print ("no current players in roster")
else:
for x in roster.keys():
roster [x].displayData()
def addRoster (roster):
newName = input("Enter new player's name:")
newPhone = input("Player's phone number: ")
newJersey = int(input("Player's jersey number:"))
roster[newName] = rosterClass (newName, newPhone, newJersey)
return roster
def removeRoster(roster):
removeName = input("enter player's name to be removed:")
if removeName in roster:
del roster[removeName]
else:
print("player not found in list.")
return roster
def editroster(roster):
oldName = input("Enter the name of the player you want to edit:")
if oldName in roster:
newName = input ("Enter the new player's name:")
newPhone = input("Player's new phone number:")
newJersey = int(input("Player's new jersey number:"))
roster[oldName] = rosterClass (newName, newPhone, newJersey)
else:
print ("no player exist in roster")
return roster
print ("Welcome to the Roster Manager")
roster = {}
menuSelection = displayMenu()
while menuSelection !=9:
if menuSelection == 1:
printRoster(roster)
elif menuSelection == 2:
roster = addRoster(roster)
elif menuSelection == 3:
roster = removeRoster(roster)
elif menuSelection == 4:
roster = editRoster(roster)
elif menuSelection == 5:
roster = saveData(roster)
elif menuSelection == 6:
roster = loadData()
menuSelection = displayMenu()
print ("Goodbye......")
コードの2行目に見積もりがありません。 Stack Overflowにコピーするときにこれが単なる転記エラーであると仮定しますが、将来このような単純なエラーがすべて修正されていることを確認してください。 – user3354059
関数宣言でコードブロックをインデントする必要があることにも注意してください。 – HyperNeutrino
どのエラーが表示されますか? – lapinkoira