PythonCSV文件操作小结

Python读写文件的方式

主要用于处理csv格式文件

最普通用法

#将输入文件处理后存入新文件
def cleanWeatherTime(inputfile,outfile):
    b = []                          #定义一个列表存储处理后的字符串,最后统一写入新文件
    file = open(inputfile,'r')
    for line in file.readlines():
        a = line.split(',')
        #处理部分,此部分将2018-9-9 1:10:59格式转为2018-9-9格式
        cut_time = a[0].split(' ')
        a[0] = cut_time[0]
        x = ''
        for i in a:
            x += i + ','
        x = x[:-1]
        b.append(x)
    with open(outfile,'a') as out:          #避免在循环中使用with
        out.writelines(b)					#把列表写入新文件
    file.close()

**

使用pandas中read_csv挑选特定列存写入新文件:

**

def readwrite(input_file,output_file):
    date_1=pd.read_csv(input_file,header=0,sep=',')
    date_1[['EXEC_DATE','ABNORMAL_FLIGHT_STAT_CD']].to_csv(output_file, sep=',', header=True,index=False)

def comp(file):
	list = []
	data = pd.read.csv(file,header=0,sep=',')
	print(data['EXEC_DATE'])     #此时每行输出索引号和该列数据
	for line in  data['EXEC_DATE']:
		if line=='2019-10-1':       #此时的line只有单独数据,没有索引号
			count+=1
	print(count)
  1. read_csv返回一个Dataframe类型数据;
  2. header=0表示以第一行为默认索引;
  3. seg=","表示以“,”为分隔符;
  4. file[[索引表头]].to_csv(输出文件,分隔符,是否显示表头,na_rep=‘替换空值’,index是否保存行索引);语句也可以写为file.to_csv(输出文件,column=[索引表头])

使用csv.reader

import csv
def cleanAirLineTime(inputfile,outfile):
    list = []
    index = [0, 2, 3, 4, 5]

    with open(inputfile,'r') as f:			#需要先打开文件
        reader = csv.reader(f)    
        for a in reader:						#文件每行作为一个列表
            str = ''                                #每次字符串要初始化
            for i,v in enumerate(index):    #需要的列
                cut_time = a[v].split(' ')		
                a[v] = cut_time[0]
            for i in range(0,9):
                str += a[i] + ','
            #str = str[:-1]
            str += "\n"
            list.append(str)

    with open(outfile,'a') as out:
        out.writelines(list)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值