Python读写CSV文件

读CSV文件

import csv

# 方式一:使用csv模块的reader函数
def csv_reader(file_obj):
    reader=csv.reader(file_obj)
    for row in reader:
        print(" ".join(row))
        
if __name__ == '__main__':
    csv_path="TB_data_dictionary_2020-07-17.csv"
    with open(csv_path,"r") as f_obj:
        csv_reader(f_obj)
        
 # 方式二:使用csv模块的DictReader
def csv_dict_reader(file_obj):
    reader=csv.DictReader(file_obj,delimiter=",")
    for line in reader:
        print(line['variable_name'])
        print(line['dataset'])
        print(line['code_list'])
        print(line['definition'])

if __name__ == '__main__':
    csv_path="TB_data_dictionary_2020-07-17.csv"
    with open(csv_path,"r") as f_obj:
        csv_dict_reader(f_obj)

写CSV文件

import csv

# 方式一:使用csv模块的writer函数
def csv_writer(data,path):
    with open(path,"w",newline='') as csv_file:
        writer=csv.writer(csv_file,delimiter=',')
        for line in data:
            writer.writerow(line)

if __name__ == '__main__':
    data=["first_name,last_name,city".split(","),
          "Tyrese,Hirthe,Strackeport".split(","),
          "Jules,Dicki,Lake Nickolasville".split(","),
          "Dedric,Medhurst,Stiedemannberg".split(",")]
    path="out.csv"
    csv_writer(data,path)
    
# 方式二:使用csv模块的DictReader
def csv_dict_writer(path,fieldnames,data):
    with open(path,"w",newline="") as out_file:
        writer=csv.DictWriter(out_file,delimiter=',',fieldnames=fieldnames)
        writer.writeheader()
        for row in data:
            writer.writerow(row)

if __name__ == '__main__':
    data=["first_name,last_name,city".split(","),
          "Tyrese,Hirthe,Strackeport".split(","),
          "Jules,Dicki,Lake Nickolasville".split(","),
          "Dedric,Medhurst,Stiedemannberg".split(",")]
    path="dict_output.csv"
    my_list=[]
    fieldnames=data[0]
    for values in data[1:]:
        inner_dict=dict(zip(fieldnames,values)) # 拼装成字典
        my_list.append(inner_dict)
    csv_dict_writer(path,fieldnames,my_list)

注:TB_data_dictionary_2020-07-17.csv 文件格式如下:

"variable_name","dataset","code_list","definition"
"budget_cpp_dstb","Budget",,"Average cost of drugs budgeted per patient for drug-susceptible TB treatment, excluding buffer stock (US Dollars)"
"budget_cpp_mdr","Budget",,"Average cost of drugs budgeted per patient for MDR-TB treatment, excluding buffer stock (US Dollars)"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X+Y=Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值