如何将标题添加到现有的csv文件?

2024-04-25 09:37:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这是一个非常基本的问题。 我有一个CSV文件,里面已经有数据了。此文件不是使用Dictreader打开或打开对象自动生成的。在

目标

  1. 我想打开一个现有的文件
  2. 在第一行追加标题(移动第一行数据)
  3. 保存文件
  4. 返回文件

有什么线索吗?在

cursor.execute(sql, params + (csv_path,))

此命令生成不带头的文件。在

代码

^{pr2}$

试过了

SELECT `website` UNION SELECT `request_system_potentialcustomers`.`website` FROM `request_system_potentialcustomers` ORDER BY `request_system_potentialcustomers`.`revenue` DESC  
INTO OUTFILE "D:\\out.csv"
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Tags: 文件csv数据对象标题目标byrequest
3条回答

^{} attribute提供有关结果列的信息。在

cursor.execute(sql, params + (csv_path,))
columns = [column[0] for column in cursor.description]
  1. 将以上信息写入新文件。在
  2. 将旧的csv内容附加到新文件中。在
  3. 用旧文件名重命名新文件。在

不太清楚您是否正在尝试读取现有的csv文件,但在没有列名的情况下从磁盘上读取csv:

使用dictreader/dictwriter并指定文件中的列名

Python 3:

import csv
ordered_filenames = ['animal','height','weight']

with open('stuff.csv') as csvfile, open("result.csv","w",newline='') as result:
    rdr = csv.DictReader(csvfile, fieldnames=ordered_filenames)
    wtr = csv.DictWriter(result, ordered_filenames)
    wtr.writeheader()
    for line in rdr:
        wtr.writerow(line)

与资料.csv在同一目录中:

^{pr2}$

以及输出结果文件:

animal,height,weight
elephant,1,200
cat,0.1,1
dog,0.2,2

等等。如果你还没打电话

cursor.execute(sql, params + (csv_path,))

然后您就有机会从一开始就正确地编写CSV文件。你不需要写一个新文件的标题行,然后复制所有的CSV到新文件,以此类推。这样做既慢又低效,而且您唯一的选择是如果您真的必须在现有文件前面加一行。在

{{1>如果您还不知道如何添加cd2},那么您可以使用cd1}来添加该文件:

^{pr2}$

演示:

mysql> SELECT "foo", "bar" UNION SELECT "baz", "quux" INTO OUTFILE "/tmp/out";  

生成包含

foo bar
baz quux

相关问题 更多 >