python csv模块简例

这篇博客介绍了如何使用Python的csv模块进行CSV文件的读写操作。在读取CSV文件时,利用DictReader将文件内容转化为字典列表,通过判断键值对填充属性列表。在写入CSV文件时,定义字段名并使用DictWriter写入数据,通过正则表达式解析数据。内容涉及到文件读写、字典操作和正则匹配等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件头以列表的形式传入函数,列表的每个元素表示每一列的标识

with open(path, 'r') as record_data:
        # DictReader会将第一行的内容(类标题)作为key值,第二行开始才是数据内容
        csv_reader = csv.DictReader(record_data)
        for row in csv_reader:
            if row["attributeName"] != "" and row["attributeValue"] != "":
                attributes.append(
                    {row["attributeName"]: row["attributeValue"]})

    fieldnames = ["Timestamp", "Thread", "Type", "Activity", "PID", "TTL"]
    #   打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    with open('log.csv', 'w') as csv_data:
        # 编写csv文件的标题
        writer = csv.DictWriter(csv_data, fieldnames)
        writer.writeheader()
        for line in data:
            # re——字符串匹配模块
            match_type = re.match(
                r'(.*?)\s(0x.*?)\s+(Default|Error)\s+(0x.*?)\s+(\d+)\s+(.*?)\n', line)
            try:
                timestamp = match_type.group(1)
                log_thread = match_type.group(2)
                log_type = match_type.group(3)
                log_activity = match_type.group(4)
                log_pid = match_type.group(5)
                log_ttl = match_type.group(6)
                
                # 先写数据名再写入数据
                writer.writerow(
                    dict(zip(fieldnames, [timestamp, log_thread, log_type, log_activity, log_pid, log_ttl])))
            except:

zip( keyList, valueList ) 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
dict(zip( 将zip后的元组转换为dict

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值