如何允许用户导入 CSV 文件,以便将其添加到他们已经输入的数据中

问题描述 投票:0回答:1

我正在制作一个数据查看器程序,其中一部分我需要制作一个导入功能,允许用户导入 CSV 文件。

CSV 文件包含销售额、年月日。

我还使用文本文件来跟踪导入的文件,因此文件不能导入多次。

我只是不知道从哪里开始。

import sales
import csv
with open('all_sales.csv', newline='') as f:
    data = list(csv.reader(f))
#display a title
def display_welcome_message():
    print("Welcome to data viewer program")
    
#display a title
def display_welcome_message():
    print("Welcome to data viewer program")
    
def display_menu():
    print("enter sales data")
    print()
    print("COMMAND MENU")
    print("View  - View All Sales")
    print("add   - Add sales")
    print("Menu  - Show menu")
    print("Import - Import file")
    print("Exit  - Exit Program")
    print()
 
total_amount=0
FILENAME = "all_sales.csv"
 
def read_sales():
    all_sales = []
    with open(FILENAME, newline="") as file:
        reader = csv.reader(file)
        for row in reader:
            all_sales.append(row)
    return all_sales
 
 
 
def write_sales(all_sales):
    with open(FILENAME, "w", newline="") as file:
        writer = csv.writer(file)
        writer.writerows(all_sales)
            
#def create_file(all_sales):
    #with open(FILENAME, "w") as file:
        #file.write()
 
def add(all_sales):
    
    amount1 = sales.get_amount()
    
    year1 = sales.get_year()
    
    month1 = sales.get_month()
    
    day1 = sales.get_day()
 
    #month1, day1, year1, print("     "), "amount:", amount1
    add_sales = []
    add_sales.append(month1)
    add_sales.append(day1)a
    add_sales.append(year1)
    add_sales.append(amount1)
    all_sales.append(add_sales)
    write_sales(all_sales)
    print(str(month1), " - ", day1, " - ", year1, "was added")
 
 
def importfile(all_sales):
    print("Enter a file name to import: ")
 
 
def view(all_sales):
    i = 0
    total = 0
    if len(all_sales) == 0:
        print("there are no sales data in the list. \n")
        return
    else:
        print(f"              Date               Quarter     Amount")
        print("---------------------------------------------------------")
        while i < len(all_sales):
            print(str(i+1),".          ",all_sales[i][2],"-",all_sales[i][0],"-",all_sales[i][1],"     ","          $",all_sales[i][3])
            total += all_sales[i][3]
            i += 1            
        print("---------------------------------------------------------")
        print("TOTAL:                                       $", total)
 
 
def calculate_quarter():
    if month1 <= 3:
        quarter1 = 1
    elif month1 > 3 and month1 <= 6:
        quarter1 = 2
    elif month1 > 6 and month1 <=9:
        quarter1 = 3
    elif month1 > 9 and month1 <=12:
        quarter1 = 4
 
 
def main():
    display_welcome_message()
    display_menu()
    all_sales = []
    sales_list = []
 
    
    while True:
        command = input('enter command: ')
        if command == 'view':
            view(sales_list)
        elif command == 'add':
            add(sales_list)
        elif command == 'menu':
            display_menu()
        elif command == 'exit':
            break
        else:
            print("not a valid command. Please try again. \n")
    print("Bye!")
 
 
    
if __name__ == "__main__":
    main()
def importfile(all_sales):
    filename = input("Import file name:  ")

我在 def importfile(all_sales) 中有我想要使用的内容:但我不确定如何让它看起来像我需要的那样,请参阅此参考:

https://imgur.com/gallery/rmIfU4E

python csv
1个回答
0
投票

如果您想要

read_sales()
导入多个文件,您可能需要:

  1. 保留文件列表
    MY_SALES_FILES
    ,而不是单个文件
    FILENAME
  2. importfile()
    将新文件添加到列表中
  3. read_sales()
    从列表中读取
    MY_SALES_FILES = [ "all_sales.csv" ]

    def importfile():
        MY_SALES_FILES.append(input("Import file name:  "))
    
    def read_sales():
        all_sales = []
        for filename in MY_SALES_FILES:
            with open(filename, newline="") as file:
                reader = csv.reader(file)
                for row in reader:
                    all_sales.append(row)
        return all_sales
© www.soinside.com 2019 - 2024. All rights reserved.