Python读取Excel表格内容数据处理后写入到txt文本文件里

题目描述

现在你有2020年1月至4月份销售数据,分别存在2020_01.csv,2020_02.csv,2020_03.csv,2020_04.csv文件中,请做出以下统计:

(1)每个月的销售额,以及4个月的销售总额写入到salesAmount .txt交件中,每个月的数据和总额数狠各占1行(共5行)。

(2)每个月消售额最高的10种商品的商品代码,商品名称,销售数量,销售额分别写入到1个文件中,文件名分别为: solesTop10_01.txt,solesTop10_02.txt,solesTop10_03.txt ,solesTop10_04.txt。

案例代码

import csv

# 统计每个月的销售额和总额
def calculate_sales_amount(file_paths):
    sales_amounts = []
    total_sales = 0

    for file_path in file_paths:
        with open(file_path, 'r', encoding='utf-8') as csvfile:
            reader = csv.reader(csvfile)
            next(reader)  # 跳过标题行
            sales = 0

            for row in reader:
                sales += float(row[3]) * int(row[4])

            sales_amounts.append(sales)
            total_sales += sales

    return sales_amounts, total_sales


# 获取每个月销售额最高的10种商品
def get_top_10_products(file_path):
    products = []

    with open(file_path, 'r', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        next(reader)  # 跳过标题行

        for row in reader:
            product_code = row[1]
            product_name = row[2]
            quantity = int(row[3])
            sales = float(row[4])

            products.append((product_code, product_name, quantity, sales))

    # 根据销售额降序排序,获取前10个商品
    top_10_products = sorted(products, key=lambda x: x[3], reverse=True)[:10]

    return top_10_products


# 写入销售额数据到salesAmount.txt文件
def write_sales_amount(sales_amounts, total_sales):
    with open('salesAmount.txt', 'w', encoding='utf-8') as f:
        for month, sales in enumerate(sales_amounts, start=1):
            f.write(f'2020年{month}月销售额:{sales:.2f}\n')
        f.write(f'2020年1-4月销售总额:{total_sales:.2f}')


# 写入每个月销售额最高的10种商品数据到solesTop10_xx.txt文件
def write_top_10_products(month, top_10_products):
    file_name = f'solesTop10_{month:02d}.txt'
    with open(file_name, 'w', encoding='utf-8') as f:
        f.write(f'{"商品代码": <10}{"商品名称": <15}{"销售数量": <10}{"销售额": <10}\n')
        for product in top_10_products:
            product_code, product_name, quantity, sales = product
            f.write(f'{product_code: <10}{product_name: <15}{quantity: <10}{sales: <10.2f}\n')


# 主程序入口
if __name__ == '__main__':
    file_paths = ['2020_01.csv', '2020_02.csv', '2020_03.csv', '2020_04.csv']

    # 统计每个月的销售额和总额
    sales_amounts, total_sales = calculate_sales_amount(file_paths)

    # 写入销售额数据到salesAmount.txt文件
    write_sales_amount(sales_amounts, total_sales)

    # 获取每个月销售额最高的10种商品,并写入对应的文件
    for month, file_path in enumerate(file_paths, start=1):
        top_10_products = get_top_10_products(file_path)
        write_top_10_products(month, top_10_products)

请确保将代码与CSV文件放在同一目录下,并根据实际情况修改文件路径和字段索引。

此外,为了正确处理CSV文件,我们使用了Python的csv模块。它可以帮助我们方便地读取和写入CSV文件,并且处理逗号分隔的数据。代码中的csv.reader函数用于读取CSV文件中的每一行数据。

最后,程序会生成一个名为salesAmount.txt的文本文件,其中包含每个月的销售额和总额数据。同时,还会生成四个文件solesTop10_01.txt、solesTop10_02.txt、solesTop10_03.txt和solesTop10_04.txt,分别包含每个月销售额最高的10种商品的相关信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享