python创建csv文件追加写入
时间: 2025-05-01 14:37:21 浏览: 32
### Python 追加写入 CSV 文件
在 Python 中,可以通过设置 `open` 函数中的参数 `mode='a'` 来实现以追加模式写入 CSV 文件。这种方式不会覆盖原有数据,而是在文件末尾新增记录。
以下是具体方法:
#### 使用内置模块 `csv`
通过指定 `mode='a'` 参数打开目标 CSV 文件,并利用 `csv.writer` 对象完成数据的追加操作[^1]。
```python
import csv
with open('./test.csv', mode='a', encoding='utf-8-sig', newline='') as csvfile:
writer = csv.writer(csvfile)
for i in range(10, 20): # 假设要追加新的行
writer.writerow(['yyy', 'yyy', i])
```
上述代码片段展示了如何向已存在的 CSV 文件中追加新行。注意编码方式为 `'utf-8-sig'` 可防止某些情况下出现 BOM 字符问题。
---
#### 使用 Pandas 库
如果需要处理更复杂的数据结构或者频繁更新大型表格,则可以借助第三方库 **Pandas** 实现相同功能[^3]。
下面是一个基于 Pandas 的例子:
```python
import pandas as pd
data_to_append = {'Column1': ['zzz'], 'Column2': ['zzz'], 'Column3': [99]}
mydf = pd.DataFrame(data_to_append)
# 将 DataFrame 数据保存至 CSV 文件并启用追加模式(mode='a')
mydf.to_csv('foo.csv', index=False, header=False, mode='a')
```
这里的关键在于设置了两个重要参数:
- `header=False`: 防止重复写入列名;
- `index=False`: 不存储索引信息;
最后通过设定 `mode='a'`, 成功实现了无损追加行为。
---
#### 处理目录下多个 CSV 文件的情况
当面对批量修改需求时(比如删除特定字段),可遍历当前工作路径下的所有 `.csv` 文件逐一执行相应逻辑[^2]:
```python
import os
import csv
for csvFilename in os.listdir('.'):
if not csvFilename.endswith('.csv'):
continue
print(f'Removing or appending data into {csvFilename}...')
rows = []
with open(csvFilename, 'r') as infile:
reader = csv.reader(infile)
next(reader) # 跳过首行作为示例
for row in reader:
rows.append(row + ["new_column_value"]) # 添加额外一列
with open(csvFilename, 'w', newline='', encoding='utf-8-sig') as outfile:
writer = csv.writer(outfile)
writer.writerow(["ColA", "ColB", ..., "New Column Name"])
for r in rows:
writer.writerow(r)
```
此脚本会读取每一个符合条件的 CSV 文档,在保留原始内容的基础上增加自定义的新列或调整现有布局后再重新写出到原位置上。
---
阅读全文
相关推荐













