最常用的一种方法,利用pandas包
-
import pandas as pd
-
#任意的多组列表
-
a = [1,2,3]
-
b = [4,5,6]
-
#字典中的key值即为csv中列名
-
dataframe = pd.DataFrame({'a_name':a,'b_name':b})
-
#将DataFrame存储为csv,index表示是否显示行名,default=True
-
dataframe.to_csv("test.csv",index=False,sep=',')
-
a_name b_name
-
0 1 4
-
1 2 5
-
2 3 6
同样pandas也提供简单的读csv方法
-
import pandas as pd
-
data = pd.read_csv('test.csv')
另一种方法用csv包,一行一行写入
-
import csv
-
#python2可以用file替代open
-
with open("test.csv","w") as csvfile:
-
writer = csv.writer(csvfile)
-
#先写入columns_name
-
writer.writerow(["index","a_name","b_name"])
-
#写入多行用writerows
-
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
-
index a_name b_name
-
0 1 3
-
1 2 3
-
2 3 4
读取csv文件用reader
-
import csv
-
with open("test.csv","r") as csvfile:
-
reader = csv.reader(csvfile)
-
#这里不需要readlines
-
for line in reader:
-
print line
以上内容来自我转载了以下,以防原博客被删
但上述方法只提到了如何直接写一个csv文件,却没有提如何在原有的csv在追加一行写文件
获取csv列标签的方法
在Python中,经常会去读csv文件,如下
import pandas as pd
import numpy as np
df = pd.read_csv("path.csv")
data = np.array(df.loc[:,:])
通过这种方式得到的data,不包含第一行,一般来说,第一行即是列标签。那么如何获取第一行的内容呢。如下
column_headers = list(df.columns.values)
java没有特别的包来读取csv文件,这是我从网上CV来的一段代码,自我感觉还不错
package com.admin.controller;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* @desc: 读取csv文件
* @time: 2019年7月26日 22:50
*/
public class export_zhong {
public static void main(String[] args) {
try {
//(文件完整路径),编码格式
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\Coli\\Desktop\\csv文件.csv"), "utf-8"));//GBK
// reader.readLine();//显示标题行,没有则注释掉
// System.out.println(reader.readLine());
String line = null;
while((line=reader.readLine())!=null){
String item[] = line.split(",");//CSV格式文件时候的分割符,我使用的是,号
String last = item[item.length-1];//CSV中的数据,如果有标题就不用-1
System.out.println(last);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}