Python CSV实时逐条插入且避免表头重复的方法

向北走
向北走
发布时间:2026-10-15| 5人浏览过
原创

本文介绍在Python中实时逐条写入CSV文件时,如何避免表头重复的问题。核心思路是在追加写入前检查文件是否已有数据,若无数据则先写入表头,再写入具体数据行。通过示例代码展示了使用csv模块进行文件读写及判断的逻辑。

实现CSV文件实时逐条插入数据,同时确保表头不重复出现。

主要策略是在首次插入数据时,先判断CSV文件是否存在数据。如果文件为空或不存在,则写入表头;如果已有数据,则直接追加内容。

在Python中,可以使用csv模块的reader和writer。写入时使用'a'(追加)模式,读取时使用'r'(只读)模式来检查文件内容。

import csv
with open("111.csv","a",encoding='utf-8',newline="") as f:

     k = csv.writer(f, dialect="excel")
      with open("111.csv", "r", encoding='utf-8', newline="") as f:
          reader = csv.reader(f)
          if not [row for row in reader]:
              k.writerow(["标题", "链接", "喜欢"])
              k.writerow(list)
          else:
              k.writerow(list)
all_datas = [[1,2],[2,3],[1,2],[4,5]]
for list1 in all_datas:
    with open(r"ablchange1.csv", 'a+', encoding='utf-8-sig', newline="") as f:

        k = csv.writer(f, dialect="excel")
        with open("ablchange1.csv", "r", encoding='utf-8-sig', newline="") as f:
            reader = csv.reader(f)
            if not [row for row in reader]:
                k.writerow(["a","b"])

                k.writerow(list1)
            else:
                k.writerow(list1)

以下是连续写入TXT文件的示例,用于对比或基础练习。

with open("111.txt","a") as f:
    for i in range(100000):
        f.write(str(i)+"\n")
        if i==9000:
            break

在写入CSV文件时,可以通过指定fieldnames来明确表头结构,确保数据格式规范。

import csv
with open('names.csv', 'w') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

以上代码为练习示例,展示了不同场景下的CSV写入方式。

    with open('specific.csv', 'a', newline="") as csvfile:
        fieldnames = ['ebayno', "pov", "mpn", "ipn", "opn"]
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
    file = open("aces_less.csv","w" , newline="")
    writer = csv.DictWriter(file, fieldnames=["asin","state"])
    writer.writeheader()
    for i in range(len(qs)):
        print(qs[i])
        state = getDataById(qs[i])
        print("状态 = " + state + "\n")
        writer.writerow({"asin":qs[i], "state": state})

以上为个人经验总结,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。