繁体   English   中英

我有一个 ”<class '_csv.error'> 预期可迭代,而不是 int 终止程序。”在运行我的代码时,我不知道如何修复它</class>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM