大家好,又见面了,我是全栈君
CSV(Comma-Separator Values)逗号分割值,由于是纯文本文件,任何编辑器都可以打开。下面用csv和pandas两种方式进行csv文件操作
Supplier Name,Invoice Number,Part Number,Cost,Purchase Date
Supplier X,001-1001,2341,$500.00 ,1/20/14
Supplier X,001-1001,2341,$500.00 ,1/20/14
Supplier X,001-1001,5467,$750.00 ,1/20/14
Supplier X,001-1001,5467,$750.00 ,1/20/14
Supplier Y,50-9501,7009,$250.00 ,1/30/14
Supplier Y,50-9501,7009,$250.00 ,1/30/14
Supplier Y,50-9505,6650,$125.00 ,2002/3/14
Supplier Y,50-9505,6650,$125.00 ,2002/3/14
Supplier Z,920-4803,3321,$615.00 ,2002/3/14
Supplier Z,920-4804,3321,$615.00 ,2002/10/14
Supplier Z,920-4805,3321,"$6,015.00 ",2/17/14
Supplier Z,920-4806,3321,"$1,006,015.00 ",2/24/14
#coding=utf-8
import sys
import csv
import re
read_file = sys.argv[1]
write_file = sys.argv[2]
with open(read_file, "r") as readfile:
with open(write_file, "w") as writefile:
reader = csv.reader(readfile, delimiter=",")
writer = csv.writer(writefile, delimiter=",")
header = next(reader)
writer.writerow(header)
for rowlist in reader:
#通过正则表达是进行行匹配
if re.match(r"^001-*.", str(rowlist[1])):
print (rowlist)
writer.writerow(rowlist)
>>> D:\Pystu>python parsecsvfile.py supplier_data.csv ceshi.csv>>> Supplier Name,Invoice Number,Part Number,Cost,Purchase Date>>> Supplier X,001-1001,2341,750.00 ,1/20/14>>> Supplier X,001-1001,5467,
#coding=utf-8
''' 运用pandas包解析csv文件'''
import pandas
from pandas import Series,DataFrame
import sys
file_path = sys.argv[1]
write_path = sys.argv[2]
data_frame = pandas.read_csv(file_path)
#print (data_frame)
#注意str的使用
data_frame["Cost"] = data_frame["Cost"].str.replace(",", "").str.strip("$").astype(float)
#print (data_frame)
newa = data_frame.loc[data_frame["Cost"] > 600, :]
#print (newa)
newa.to_csv(write_path, index = False)
>>> D:\Pystu>python parse_csv_file_by_pandas.py supplier_data.csv ceshi.csv >>> Supplier Name,Invoice Number,Part Number,Cost,Purchase Date >>> Supplier X,001-1001,5467,750.0,1/20/14 >>> Supplier X,001-1001,5467,750.0,1/20/14 >>> Supplier Z,920-4803,3321,615.0,2002/3/14 >>> Supplier Z,920-4804,3321,615.0,2002/10/14 >>> Supplier Z,920-4805,3321,6015.0,2/17/14 >>> Supplier Z,920-4806,3321,1006015.0,2/24/14
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120209.html原文链接:https://javaforall.cn