题目描述
现在你有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