python-读写CSV文件以及合并

2021-03-25  本文已影响0人  小二哥很二
一、csv文件的多种读取

1、标准库读取csv:结果把每一条数据生成列表,方便循环遍历

import csv

re = csv.reader(open('hospital_vehicle_team.csv'))
for row in re:
    print(row)

result:
['597', '2412372', '1605903']
['597', '2412375', '1605906']
['597', '2412378', '1605909']
['597', '2412381', '1605912']
['597', '2412384', '1605915']
['597', '2412387', '1605918']
['597', '2412390', '1605921']
['597', '2412393', '1605924']

Process finished with exit code 0

2、用pandas读取:用与展示带有维度的结果

import pandas as pd

data = pd.read_csv('hospital_vehicle_team.csv')
print(data)

result:
   597  2412372  1605903
0  597  2412375  1605906
1  597  2412378  1605909
2  597  2412381  1605912
3  597  2412384  1605915
4  597  2412387  1605918
5  597  2412390  1605921
6  597  2412393  1605924
二、csv文件的多种写入

1、写入列表数据

import csv

headers = ['class','name','sex','height','year']

rows = [
        [1,'xiaoming','male',168,23],
        [1,'xiaohong','female',162,22],
        [2,'xiaozhang','female',163,21],
        [2,'xiaoli','male',158,21]
    ]

with open('learncsv.csv', 'w', newline='') as f:
    f_csv = csv.writer(f)
    f_csv.writerow(headers)
    f_csv.writerows(rows)

注意:如果写入的数据有空行,就需要加上参数newline=''
2、写入字典数据

NO.1写入嵌套列表嵌套字典
import csv

headers = ['class','name','sex','height','year']

rows = [
        {'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},
        {'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},
        {'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},
        {'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},
    ]

with open('learncsv.csv', 'w', newline='') as f:
    f_csv = csv.DictWriter(f, headers)
    f_csv.writeheader()
    f_csv.writerows(rows)
Result
NO.2写入单个字典数据
import csv
myDict = {'user1':'token1', 'user2':'token2', 'user3':'token3'}
keyList = myDict.keys()
valueList = myDict.values()
# zip返回一个以元组为元素的列表
rows = zip(keyList, valueList)
with open('user.csv','w', newline='') as f:
    f_csv = csv.writer(f)
    for row in rows:
        f_csv.writerow(row)

result:
user1  token1
user2  token2
user3  token3
三、读取txt文件内容写入csv文件

- token.txt
user1,token1
user2,token2
user3,token3

import csv

NO.1第一种写法:
key = []
value = []
with open('token.txt') as f:
    data = f.readlines()
    # print(data)
    for content in data:
        key.append(content.split(',')[0])
        value.append(content.split(',')[1].strip())
res = dict(zip(key, value))

with open('token.csv', 'w', newline='') as f:
    f_csv = csv.writer(f)
    keylist = res.keys()
    valuelist = res.values()
    rows = zip(keylist,valuelist)
    for row in rows:
        f_csv.writerow(row)
    print('写入完毕!')


NO.2第二种写法:
res = []
with open('user.txt')  as f:
    data = f.readlines()
    for i in data:
        org_list = i.strip().split(',')
        res.append(org_list)
print(res)

with open('ceshi.csv', 'w', newline='') as f:
    f_csv = csv.writer(f)
    f_csv.writerows(res)     #切记一定是复数形式writerows

- token.csv

user1 token1
user2 token2
user3 token3
上一篇下一篇

猜你喜欢

热点阅读