python中csv的应用

dic = {'张三':123, '李四':456, '王二娃':789}
csvFile3 = open('ming.csv','w')
writer2 = csv.writer(csvFile3)
for key in dic:
writer2.writerow([key, dic[key]])
csvFile3.close()

当打开文件的格式为“W”的时候,每次会把当前的文件内容覆盖掉。
当设置为“a”时,则会按行追加:
python中csv的应用

python中csv的应用
python中csv的应用
python中csv的应用

向CSV 文件中写入时,能不能按照列来追加 ?

转载于:https://blog.51cto.com/576642026/2151796

### Python 中 `csv` 库的函数及其使用方法 Python 的标准库提供了强大的 `csv` 模块,用于处理逗号分隔值(CSV)文件。该模块支持多种功能,包括读取、写入和自定义 CSV 数据格式。以下是关于 `csv` 库主要函数的具体说明及示例。 --- #### 1. **读取 CSV 文件** 可以通过 `csv.reader` 将 CSV 文件的内容转换为列表形式逐行读取。 ```python import csv with open('data.csv', newline='', encoding='utf-8') as csvfile: reader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in reader: print(row) ``` 此代码片段展示了如何打开一个名为 `data.csv` 的文件,并按照行的形式打印每一行的数据[^1]。 --- #### 2. **写入 CSV 文件** 使用 `csv.writer` 创建一个新的 CSV 文件或将数据追加到现有文件中。 ```python import csv data_to_write = [['Name', 'Age'], ['Alice', 30], ['Bob', 24]] with open('output.csv', mode='w', newline='', encoding='utf-8') as csvfile: writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) writer.writerows(data_to_write) ``` 这里创建了一个新的 CSV 文件 `output.csv` 并将二维数组 `data_to_write` 写入其中[^1]。 --- #### 3. **检测 CSV 格式** 有时需要先确定输入文件的确切格式,这可通过 `csv.Sniffer` 实现。 ```python import csv with open('example.csv', newline='') as csvfile: sample_data = csvfile.read(1024) # 获取文件开头部分内容作为样本 dialect = csv.Sniffer().sniff(sample_data) # 探测 CSV 方言 csvfile.seek(0) # 返回文件指针至起始位置 reader = csv.reader(csvfile, dialect=dialect) for row in reader: print(row) ``` 这段代码演示了如何利用 `Sniffer` 类探测未知 CSV 文件的结构并据此设置合适的解析参数[^2]。 --- #### 4. **基于字典的操作** 除了简单的行列映射之外,还可以通过 `DictReader` 和 `DictWriter` 来简化字段名与值之间的关联过程。 ##### (1)读取带表头的 CSV 文件 ```python import csv with open('people.csv', newline='', encoding='utf-8') as csvfile: dict_reader = csv.DictReader(csvfile) for person in dict_reader: print(person['Name'], person['Age']) ``` 假设 `people.csv` 包含两列分别为姓名 (`Name`) 和年龄 (`Age`) ,则上述程序能够方便地访问这些特定字段[^3]。 ##### (2)写出带有表头的 CSV 文件 ```python import csv fieldnames = ['Name', 'Age'] rows = [{'Name': 'Charlie', 'Age': 29}, {'Name': 'David', 'Age': 35}] with open('new_people.csv', mode='w', newline='', encoding='utf-8') as csvfile: dict_writer = csv.DictWriter(csvfile, fieldnames=fieldnames) dict_writer.writeheader() # 添加头部信息 dict_writer.writerows(rows) # 批量写入记录 ``` 这个例子显示了怎样构造包含标题行的新 CSV 文档[^3]。 --- #### 5. **其他重要配置选项** - **delimiter**: 定义单元格间的分割符,默认为 `,`; - **quotechar**: 设置引用字符,默认为 `"`; - **quoting**: 控制何时应该应用引号包裹内容,可能取值有: - `csv.QUOTE_ALL`: 始终加上引号, - `csv.QUOTE_MINIMAL`: 只在必要时才添加引号, - `csv.QUOTE_NONNUMERIC`: 对所有非数值型数据都附加引号, - `csv.QUOTE_NONE`: 不允许任何情况下加入引号 (需配合 escapechar 参数). --- ### 总结 以上介绍了 Python `csv` 模块的核心组件及其典型应用场景。无论是常规表格数据分析还是更复杂的定制化需求,都可以依赖于这一灵活而高效的工具集完成相应任务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值