练习题:文件读写与数据处理

第一部分:考点和作答区

考点:

  • 文件读写
  • 数据解析(如:CSV格式)
  • 字典操作
  • 列表推导式

题目描述: 编写一个Python函数 process_csv_data,该函数读取一个名为 data.csv 的CSV文件,该文件包含以下列:date(日期),sales(销售额)。函数应该计算每天的销售额总和,并将结果保存到一个新的CSV文件 daily_sales_sum.csv 中。

例如,data.csv 文件内容如下:

date,sales
2023-01-01,1000
2023-01-02,1200
2023-01-03,1500


生成的 daily_sales_sum.csv 文件内容应如下:

date,total_sales
2023-01-01,1000
2023-01-02,1200
2023-01-03,1500


作答区:

# 请在此处编写你的代码


第二部分:答案

import csv

def process_csv_data(input_filename, output_filename):
    sales_data = {}
    with open(input_filename, mode='r', newline='') as file:
        reader = csv.DictReader(file)
        for row in reader:
            date = row['date']
            sales = int(row['sales'])
            if date not in sales_data:
                sales_data[date] = 0
            sales_data[date] += sales
    
    with open(output_filename, mode='w', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(['date', 'total_sales'])
        for date, total_sales in sales_data.items():
            writer.writerow([date, total_sales])

# 测试代码
process_csv_data('data.csv', 'daily_sales_sum.csv')


扩展考点和扩展作答区

扩展考点:

  • 文件读写(如:JSON格式)
  • 数据解析(如:JSON格式)
  • 字典操作
  • 列表推导式

扩展题目描述: 扩展 process_csv_data 函数,使其能够处理JSON格式的文件。JSON文件包含相同的字段,但格式不同。

作答区:

# 请在此处编写你的代码

扩展的解答思路和答案

import json

def process_json_data(input_filename, output_filename):
    sales_data = {}
    with open(input_filename, mode='r') as file:
        data = json.load(file)
        for item in data:
            date = item['date']
            sales = int(item['sales'])
            if date not in sales_data:
                sales_data[date] = 0
            sales_data[date] += sales
    
    with open(output_filename, mode='w') as file:
        writer = csv.writer(file)
        writer.writerow(['date', 'total_sales'])
        for date, total_sales in sales_data.items():
            writer.writerow([date, total_sales])

# 测试代码

www.hzhyrcw.com
www.hzhdrcw.com
www.hzlmrcw.com
www.jmjhrcw.com
www.jmxhrcw.com

process_json_data('data.json', 'daily_sales_sum.csv')


在这个扩展的答案中,我们修改了 process_csv_data 函数,使其能够处理JSON格式的文件。我们使用 json.load() 函数来读取JSON文件,并将其内容转换为列表,然后遍历列表中的每个项目,进行与CSV文件相同的处理。最后,我们将处理后的数据写入CSV文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值