[英]I got a "<class '_csv.Error'> iterable expected, not int Terminating program." while running my code, and I don't know how to fix it
它也使我的文件看起來像這樣,我真的不知道它發生了什么,如果你也能幫我解決這個問題我會非常感激,這只是一個學校項目
這是所有代碼,我發布了完整上下文代碼 1 的屏幕截圖這是我假設我遺漏了一些代碼 3
文本中的代碼(原諒我之前沒有這樣做,我在這里很新,順便說一句,這是python 3)
#!/usr/bin/env python3
#David Martinez, December 5, 2022, CPT168-W47, Final Exam Project
#Description
import csv
import sys
FILENAME = "party.csv"
#numb=int(input("Enter no of guests/members:"))
#for i in range(numb):
# user = input("Enter your name:")
# utype = input("mem or guest:")
# food = input("Enter your menu choice beef or veg or chicken:")
#fees=21.0
#total=fees*numb
#g=0
#m=0
#for j in range(numb):
# if utype == 'guest':
# g=g+1
# else:
# m=m+1
#print('name',user)
#print('member or guest:',utype)
#print('food type:',food)
#print("fees paid:",fees)
#print("total members:",m)
#print("total guests:",g)
#print("total fees paid by all attendees",total)
#SPACE
def exit_program():
print("Terminating program.")
sys.exit()
def read_party():
try:
party = []
with open(FILENAME, newline="") as file:
reader = csv.reader(file)
for row in reader:
party.append(row)
return party
except FileNotFoundError as e:
return party
except Exception as e:
print(type(e), e)
exit_program()
def write_party(party):
try:
with open(FILENAME, "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(party)
except OSError as e:
print(type(e), e)
exit_program()
except Exception as e:
print(type(e), e)
exit_program()
def list_party(party):
for i, party in enumerate(party, start=1):
print(f"{i}. {party[0]} --{party[1]}-- ({party[2]}) {party[3]}")
print()
def add_party(party):
#name = get_name
#member_guest = get_member_guest
name = input("Name: ")
member_guest = input("Member or Guest: ")
food = input(" Chicken entre Beef entre Vegetarian meal: ")
while True:
try:
fees = int(input("Fees: "))
except ValueError:
print("Invalid integer. Please try again.")
continue
if fees <= 0:
print("Fees must be greater than zero. Please try again.")
continue
else:
break
party = [name, member_guest, food, fees]
party.append(party)
write_party(party)
print(f"{name} was added.\n")
def delete_party(party):
while True:
try:
number = int(input("Number: "))
except ValueError:
print("Invalid integer. Please try again.")
continue
if number < 1 or number > len(party):
print("There is no member with that number. Please try again.")
else:
break
party = party.pop(number - 1)
write_party(party)
print(f"{party[0]} was deleted.\n")
def display_menu():
print("The Party List Program")
print()
print("COMMAND MENU")
print("list - List all members and guests")
print("add - Add a member to the list")
print("del - Remove a member from the list")
print("exit - Exit program")
print()
def main():
# party_list = [["Father Orion", member, 22.00, Chicken entre ],
# ["Mother Theresa", member, 22.00, ],
# ["Johnny", guest, 7.95, Vegetarian meal ]]
display_menu()
party = read_party()
while True:
command = input("Command: ")
if command.lower() == "list":
list_party(party)
elif command.lower() == "add":
add_party(party)
elif command.lower() == "del":
delete_party(party)
elif command.lower() == "exit":
break
else:
print("Not a valid command. Please try again.\n")
print("Bye!")
if __name__ == "__main__":
main()
我試圖讓用戶輸入一個數字,然后將其保存在最后一行的文件中,但由於某種原因,所有內容都散開了,錯誤中的文件拒絕了“費用”,我又一次沒有真正的經驗有了這個,我也很感激解釋,看看我哪里出錯了。
party = [name, member_guest, food, fees]
party.append(party)
我猜這是因為您將party
附加到自身,從而創建了一個遞歸列表,而 csv 編寫器無法處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.