-
2020-11-20 22:27:42
I have 5 lists, all of the same length, and I'd like to write them to 5 columns in a CSV. So far, I can only write one to a column with this code:
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
for val in test_list:
writer.writerow([val])
If I add another for loop, it just writes that list to the same column. Anyone know a good way to get five separate columns?
解决方案
change them to rows
rows = zip(list1,list2,list3,list4,list5)
then just
for row in rows:
writer.writerow(row)
更多相关内容 -
Python将字典数据写入CSV文件
2020-12-21 12:58:59import csv class WriteCSV(): """定义成员变量""" def __init__(self): pass def init(self, info_list, info_dict_list): self.info_list = info_list self.info_dict_list = info_dict_list def ... -
CELLWRITE:Cellwrite 将混合元胞数组数据写入 CSV 文件。-matlab开发
2021-06-01 20:46:09此函数实现了 csvwrite 的基本功能,但对混合数据(数字和字符串)... CELLWRITE(FILENAME, C) 将元胞数组 C 作为逗号分隔值写入 FILENAME。 对 1000 x 100 随机数字数据矩阵的性能测试显示性能几乎与 CSVWRITE 相同。 -
python 写入csv乱码问题解决方法
2020-09-21 12:25:44主要介绍了python 写入csv乱码问题解决方法的相关资料,需要的朋友可以参考下 -
csvwriteFast:将数值数据/矩阵快速写入 csv/文本文件-matlab开发
2021-05-31 01:00:44用法: csvwriteFast( 文件名、值、格式) 速度: >> r = randn( 1e5, 2 ); >> tic, csvwrite( 'r.csv', r ), toc ... 例如,它写入 10 列矩阵的速度仅比 csvwrite 快 3 倍,而在上面的示例中(2 列),该因子超过 13。 -
qtcsv:用于在Qt中读取和写入csv文件的库
2021-02-05 20:51:23qtcsv:用于在Qt中读取和写入csv文件的库 -
Python实现读取及写入csv文件的方法示例
2020-09-20 21:47:06主要介绍了Python实现读取及写入csv文件的方法,涉及Python针对csv格式文件的读取、遍历、写入等相关操作技巧,需要的朋友可以参考下 -
UE4C++写入CSV文件.docx
2019-11-04 17:44:41UE4 C++写入CSV文件,当项目有需要把项目的一些数据进行保存时,可以保存成CSV文件,因为CSV文件可以用Excel打开,这样阅读就非常方便 -
easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合.zip
2019-09-18 17:36:28easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合 EasyCSVEasyCSV是面向 PHP 5.4 的简单面向对象的CSV操作库 安装通过 Composer 安装:composer require jwage/easy-csv阅读器要读 -
python 使用pandas的dataframe一维数组和二维数组分别按行写入csv或excel
2020-12-21 18:08:46pandas写入excel 两种 一个是一行一行的写(本身写入时列)另一种是写入二维数组。 1.一行一行的写 i=1 loujian=2 dat=[i,loujian,ll,load_idx,bilv,eventype]#一个变量 print (dat) test = pd.DataFrame(data=dat).... -
Python基于csv模块实现读取与写入csv数据的方法
2020-09-20 21:02:16主要介绍了Python基于csv模块实现读取与写入csv数据的方法,结合实例形式分析了Python使用csv模块针对csv文件的读取与写入相关操作技巧,需要的朋友可以参考下 -
python3爬取中国天气网天气并写入csv
2018-11-11 19:47:07python3实现爬取中国天气网天气并写入csv,若有疑问可参照对应博客或询问 -
Python写入CSV文件的方法
2020-09-21 22:29:52主要介绍了Python写入CSV文件的方法,涉及Python使用csv模块操作csv文件读写的相关技巧,非常简单实用,需要的朋友可以参考下 -
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020-12-20 09:51:01先举个例子,分别以不指定编码、指定编码为 utf-8、指定编码为 utf-8-sig 三种方式来做比较,再将写入 csv 文件和 txt 文件来做个对比 一、不指定编码方式,直接存入 csv 文件 import csv with open('test.csv', 'w... -
求教为何python写入csv文件,用txt方式打开,发现头尾各多了一个双引号”!谢谢!
2020-12-22 13:06:28import gevent,time,csv,requests #时间戳 sta=time.time() #c创建文档 file=open(r’food_calorie1.csv’,‘w’,newline=’’,encoding=‘utf-8’) writer=csv.writer(file) #获得网址,创建队列,添加网址 work=... -
python编写从图片中取点坐标,写入csv文件
2018-07-23 16:55:38使用python编写的从图像中取点的程序。本程序设定是取得11行39列的文字坐标,如有其它需求可在本基础上改。通过鼠标左键单击获取文字位置,左键双击完成整个一行的取点。鼠标右击完成整个取点过程。 -
python读取与写入csv格式文件的示例代码
2020-09-20 23:52:43本篇文章主要介绍了python读取与写入csv格式文件的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
【Python入门教程】第73篇 写入CSV文件
2022-02-23 09:38:42本篇我们介绍如何使用 Python 内置的 csv 模块将数据写入 CSV 文件。csv.writer() 函数和 DictWriter 类都可以将数据写入 CSV 文件。本篇我们介绍如何使用 Python 内置的 csv 模块将数据写入 CSV 文件。
写入 CSV 文件
在 Python 代码中写入 CSV 文件的步骤如下:
- 首先,使用内置的 open() 函数以写入模式打开文件。
- 其次,调用 writer() 函数创建一个 CSV writer 对象。
- 然后,利用 CSV writer 对象的 writerow() 或者 writerows() 方法将数据写入文件。
- 最后,关闭文件。
以下代码实现了上面的步骤:
import csv # open the file in the write mode f = open('path/to/csv_file', 'w') # create the csv writer writer = csv.writer(f) # write a row to the csv file writer.writerow(row) # close the file f.close()
使用 with 语句可以避免调用 close() 方法关闭文件,从而使得代码更加精简:
import csv # open the file in the write mode with open('path/to/csv_file', 'w') as f: # create the csv writer writer = csv.writer(f) # write a row to the csv file writer.writerow(row)
如果数据中包含非 ASCII 编码字符,需要在 open() 函数中指定字符编码。以下示例演示了如何将 UTF-8 字符写入 CSV 文件:
import csv # open the file in the write mode with open('path/to/csv_file', 'w', encoding='UTF8') as f: # create the csv writer writer = csv.writer(f) # write a row to the csv file writer.writerow(row)
示例
以下示例演示了如何将数据写入 CSV 文件:
import csv header = ['id', 'stu_id', 'course_name', 'course_score'] data = [1, 1, 'English', 100] with open('score.csv', 'w', encoding='UTF8') as f: writer = csv.writer(f) # write the header writer.writerow(header) # write the data writer.writerow(data)
如果打开 score.csv 文件,我们会发现一个问题,就是两行数据之间存在一个额外的空白行:
为了删除多余的空白行,我们可以为 open() 函数指定关键字参数 newline=’’:import csv header = ['id', 'stu_id', 'course_name', 'course_score'] data = [1, 1, 'English', 100] with open('score.csv', 'w', encoding='UTF8', newline='') as f: writer = csv.writer(f) # write the header writer.writerow(header) # write the data writer.writerow(data)
再次打开 score.csv 文件,显示的内容如下:
写入多行数据
如果想要一次写入多行数据,我们可以使用 writerows() 方法。例如:
import csv header = ['id', 'stu_id', 'course_name', 'course_score'] data = [ [1, 1, 'English', 100], [2, 1, 'Math', 95], [3, 2, 'English', 96] ] with open('score.csv', 'w', encoding='UTF8', newline='') as f: writer = csv.writer(f) # write the header writer.writerow(header) # write the data writer.writerows(data)
新文件的内容如下:
DictWriter 类
如果写入的数据行由字典组成,我们可以使用 csv 模块 的DictWriter 类将数据写入文件。例如:
import csv # csv header fieldnames = ['id', 'stu_id', 'course_name', 'course_score'] # csv data rows = [ {'id': 1, 'stu_id': 1, 'course_name': 'English', 'course_score': 100}, {'id': 2, 'stu_id': 1, 'course_name': 'Math', 'course_score': 95}, {'id': 3, 'stu_id': 2, 'course_name': 'English', 'course_score': 96} ] with open('score.csv', 'w', encoding='UTF8', newline='') as f: writer = csv.DictWriter(f, fieldnames=fieldnames) writer.writeheader() writer.writerows(rows)
以上代码的执行过程如下:
- 首先,定义两个存储字段名和数据行的变量。
- 其次,调用 open() 函数以写入模式打开 CSV 文件。
- 然后,创建一个新的 DictWriter 类实例。
- 接着,调用 writeheader() 方法写入标题行。
- 最后,使用 writerows() 方法写入数据行。
总结
- csv.writer() 函数和 DictWriter 类都可以将数据写入 CSV 文件。
-
C语言读取写入CSV文件 [二]进阶篇——写入CSV文件
2022-02-04 12:05:05本系列介绍了如何利用C语言读取写入CSV文件,本篇是系列的第二篇,介绍了利用C语言写入CSV文件的进阶内容,包括包裹的概念、特殊符号的处理、如何处理开头和结尾处的空格、分隔符可能存在的问题以及最后介绍了可以...本系列文章目录
什么是 包裹(使用双引号)?
包裹的概念是面向字段的,包裹起来的字段将会被视为一个整体。尤其当字段中包含一些特殊符号(如逗号、换行符、双引号)时,如果不将这些字段包裹起来,则很有可能导致 CSV 文件解析发生错误。那么我们该如何包裹一个字段呢,通常将一个字段放置在双引号("")之间,例如"ID",ID就是一个被包裹的字段。任何字段都可以使用双引号("")将其包裹起来,并不存在任何限制。
字段中特殊符号的处理
根据上面的介绍,如果一个字段中包含特殊符号,那么在写入时必须使用双引号来包裹这个字段。有一点需要注意,C语言中字符串中的双引号需要通过使用转义符号来表示(\")
下面分别用逗号、换行符、双引号来做示例
-
逗号:
fprintf(fp, "3,\"z,xc\",3.3\n");
-
换行符:
fprintf(fp, "4,\"qw\nas\",4.4\n");
-
双引号:
fprintf(fp, "5,\"\"aszx\"\",5.5\n");
,第一个用作包裹字段,第二个双引号才是实际的双引号。
完整的程序如下:
// 2-1.c #include <stdio.h> #include <stdlib.h> int main() { FILE *fp = fopen("tmp.csv", "w+"); if (fp == NULL) { fprintf(stderr, "fopen() failed.\n"); exit(EXIT_FAILURE); } fprintf(fp, "ID,Name,Points\n"); fprintf(fp, "1,qwe,1.1\n"); int id = 2; char *name = "asd"; float point = 2.2; fprintf(fp, "%d,%s,%f\n", id, name, point); // special symbols fprintf(fp, "3,\"z,xc\",3.3\n"); fprintf(fp, "4,\"qw\nas\",4.4\n"); fprintf(fp, "5,\"\"aszx\"\",5.5\n"); fclose(fp); return 0; }
运行程序,查看 CSV 文件内容,结果为:
字段开头和结尾处的空格和制表符
CSV 文件中的字段中的开头和结尾上,可能会存在空格或制表符,但是该如何处理呢?按照 RFC 4180 标准的规定,“空格被看作字段的一部分,不应当被忽略”。但是RFC 4180 并不是强制标准,因此某些实现中,空格和制表符会被截断掉。因此
fprintf(fp, " 6,abc,6.6 \n");
写入的字段可能是6,abc,6.6
(按照 RFC 4180 标准) 或者是6,abc,6.6
(空格被截掉)然而,在 RFC 4180 标准中,并未说明空格字符若出现在被包裹的值之外如何处理,例如在
fprintf(fp, " \"7\",def,\"7.7\" \n");
语句中,如字段\"7\"
,虽然7被包裹,但包裹之外的又有空格,因此目前标准中对这样的空格该如何处理还没有规定,可以保留也可以截掉。\"7.7\"
字段也面临着同样的问题。想要将这种空格视为字段中有意义的数据,最省事的方法是将这些空格也包裹起来,例如
fprintf(fp, "\" 8\",ghi,\"8.8 \"\n");
语句中的"\" 8\"
、\"8.8 \"
字段中,属于字段的空格已被包裹。完整的程序如下:
// 2-2.c #include <stdio.h> #include <stdlib.h> int main() { FILE *fp = fopen("tmp.csv", "w+"); if (fp == NULL) { fprintf(stderr, "fopen() failed.\n"); exit(EXIT_FAILURE); } fprintf(fp, "ID,Name,Points\n"); fprintf(fp, "1,qwe,1.1\n"); int id = 2; char *name = "asd"; float point = 2.2; fprintf(fp, "%d,%s,%f\n", id, name, point); // special symbols fprintf(fp, "3,\"z,xc\",3.3\n"); fprintf(fp, "4,\"qw\nas\",4.4\n"); fprintf(fp, "5,\"\"aszx\"\",5.5\n"); // leading or trailing spaces fprintf(fp, " 6,abc,6.6 \n"); fprintf(fp, " \"7\",def,\"7.7\" \n"); fprintf(fp, "\" 8\",ghi,\"8.8 \"\n"); fclose(fp); return 0; }
运行程序,查看 CSV 文件内容,结果为:
分隔符可能存在的问题
在某些国家(如德国、荷兰)中,小数点不是点而是逗号,因此如果依然用逗号作分隔符,那么将无法正确表示。那么该在保证小数点是逗号前提下,如何避免CSV文件解析错误,存在两种解决方法:
- 将所有包含小数点的数字包裹起来
- 使用分号而不是逗号作为分隔符
利用软件进行配置
无论是开头或结尾处的空格或制表符,还是分隔符的选择,在一些功能强大的软件中,这些其实都可以进行配置,下图分别展示了在 Microsoft Excel、LibreOffice Calc中如何解析CSV文件的配置界面。
如果想要了解偏基础的 C 语言读取写入 CSV 文件的内容,欢迎阅读:[一] 基础篇
如果想要了解进阶的 C 语言读取 CSV 文件的内容,欢迎阅读:[三] 进阶篇——读取CSV
-
-
Codesys读取和写入CSV数据源程序
2022-04-25 10:05:44codesys通过文件写入功能块是实现对CSV文件数据的写入 a、数组数据处理,将需要的数据转换成CSV需要的字符序列; b、通过SysFileOpen指令打开文件; c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全... -
python将列表写入csv_如何将列表列表写入CSV文件Python?
2020-11-24 03:56:06I have a list of lists like [('a', 'b', 'c'), ('d', 'e', 'f'),....]. I want to write it to a CSV file like this-a, b, cd, e, fHow do I do that?I've tried using csv.writerows but the output fil...I have a list of lists like [('a', 'b', 'c'), ('d', 'e', 'f'),....]. I want to write it to a CSV file like this-
a, b, c
d, e, f
How do I do that?
I've tried using csv.writerows but the output file had each character in different cells and all together in same row. In the sense, the cells in row one had ' a ' ' b ' etc.
Thanks.
解决方案
If you have Pandas, it's pretty easy and fast. I assume you have a list of tuples called "data".
import pandas as pd
data = [('a', 'b', 'c'), ('d', 'e', 'f')]
df = pd.DataFrame(data)
df.to_csv('test.csv', index=False, header=False)
done!
EDIT: "list of lists" -> "list of tuples"
-
Python多个列表写入csv
2022-02-24 11:05:19'初中', '入职时间': '2015'}] 5、接下来按行写入csv with open("多列表写入csv.csv",'w',newline='',encoding='UTF-8') as f_c_csv: writer = csv.writer(f_c_csv) writer.writerow(['姓名', '年龄','学历','入职... -
利用python将数据写入CSV文件中
2021-01-06 10:14:59利用python将数据写入CSV文件中 简单实现,代码如下: import csv # 1.创建文件对象 f = open('csv_file.csv', 'w', encoding='utf-8') # 2.基于文件对象构建csv写入对象 csv_write = csv.writer(f) # 3.构建... -
python 将字典写入csv
2021-06-07 14:34:45import csv import os.path from pathlib import Path # os.path.isfile(fname) root='/faster_rcnn' save='sum.csv' h=['name','AP','AP50','AP75','bAP','bAP50','bAP75','nAP','nAP50','nAP75'] with open... -
c++写入csv文件
2022-03-02 09:40:55#include<bits/stdc++.h> using namespace std;... //filename是待写入的文件名,data是保存待写文件的数据,保证filename一定存在 ofstream outFile; outFile.open(filename,ios::out); //打开这个文件 for -
python 将数据写入csv文件
2022-02-28 21:02:22在我们python编写爬虫程序的时候在保存的时候经常用到csv文件,我在这篇博客里面分享两种数据保存为csv文件的方法。 -
爬虫写入csv文件
2021-12-12 12:28:14我的启发来自这里,既然可以通过dict类型创建dataframe,那么我再通过pd.to_csv 将其写入csv文件,岂不是得到我想要的数据 得到的数据就会根据自己的列名一列一列呈现了 只要dataframe 写得对,那传出来的csv文件一定... -
【Python】写入csv文件
2022-04-20 15:58:12写入的数据类型可以是字典模式或是列表模式。 字典模式: with open(store_file, 'w', encoding='utf-8', newline='') as f: fieldnames = ['A', 'B', 'C', 'D'] # 表头 writer = csv.DictWriter(f, fieldnames=...