Python对CSV⽂件的读取与写⼊
CSV ⽂件(Comma Separated Values file,即逗号分隔值⽂件)是⼀种纯⽂本⽂件,它使⽤特定的结构来排列表格数据。因为是纯⽂本⽂件,所以 csv 只包含实际的⽂本数据 —— 换句话说,csv 可以包含可打印的 ASCII 或 Unicode 字符。那在python中对CSV⽂件要怎么进⾏操作呢?
⾸先要先准备⼀个CSV⽂件,创建⼀个excel⽂件,并另存为csv⽂件,放⼊⼏⾏数据,我准备⾥⾯的内容是:
⼀、导⼊CSV包
import csv
⼆、CSV⽂件基本读取
def read_csv():
with open('file.csv','r') as f:
rete = ader(f)        # 读取后返回的是⼀个_ader的对象,如果通过遍历,可以看到是⼀个个列表
for x in rete:
print(x)
运⾏结果:
['编号', '课程', '讲师']
['1', 'Python', 'Tom']
['2', 'C#', 'Jesee']
['3', 'Django', 'Nike']
['4', '.Net', 'Kangkang']
通过以上⽅法,就读取出CSV⽂件⾥⾯的内容。
三、读取CSV⽂件并⽤namedtuple映射列名
def read_namedtuple():
with open('file.csv','r') as f:
red = ader(f)    # 读取后返回的是⼀个_ader的对象,如果通过遍历,可以看到是⼀个列表
head = next(red)        # 要把第⼀⾏给分隔开,不然会当成数据⼀起打印了
ow = namedtuple('Row',head)
# ⽤nmaedtuple来定义的,它的对象名称就叫Row,后⾯列表给它的数据就是最终这个对象的值,⽽head⾥⾯的表头就当作是Row对象值的名称
for x in red:
row = ow(*x)        # *r就是对遍历到的r进⾏解包,然后传递给Row,它会将每⼀列对应到Row对象值的名称下⾯
print(row)
运⾏结果:
Row(编号='1', 课程='Python', 讲师='Tom')
Row(编号='2', 课程='C#', 讲师='Jesee')
Row(编号='3', 课程='Django', 讲师='Nike')
Row(编号='4', 课程='.Net', 讲师='Kangkang')
四、读取CSV⽂件并以字典的形式映射
def read_dict():
'''读取csv并以字典的形式映射'''
with open('score.csv','r') as f:
red = csv.DictReader(f)    # 通过csv⾃带的DictReader⽅法将数据转换成字典表
for x in red:
python怎么读取excel文件数据print(x)              # 遍历出来每个x都是⼀个字典表
运⾏结果:
{'编号': '1', '课程': 'Python', '讲师': 'Tom'}
{'编号': '2', '课程': 'C#', '讲师': 'Jesee'}
{'编号': '3', '课程': 'Django', '讲师': 'Nike'}
{'编号': '4', '课程': '.Net', '讲师': 'Kangkang'}
五、写⼊CSV⽂件
写⼊单⾏内容到CSV⽂件
def write_csv(s,q):
with open('file.csv','a',newline='') as f:    # newline=空是因为我们⽂件是csv类型,如果不加这个东西,当我们写⼊东西的时候,就会出现空⾏
xieru = csv.writer(f,dialect='excel')      # 定义⼀个变量进⾏写⼊,将刚才的⽂件变量传进来,dialect就是定义⼀下⽂件的类型,我们定义为excel类型        xieru.writerow(s)      # 写⼊的⽅法是writerow,通过写⼊模式对象,调⽤⽅法进⾏写⼊
xieru.writerow(q)
print('写⼊完成')
s = [5, 'Java', 'Mark']
q = [6, 'C++', 'William']
write_csv(s,q)
运⾏结果:
写⼊完成
写⼊多⾏内容到CSV⽂件
def write_csv(s):
with open('file.csv','a',newline='') as f:
xieru = csv.writer(f,dialect='excel')
xieru.writerows(s)      # writerows⽅法是⼀下⼦写⼊多⾏内容
print('写⼊完成')
e = [(7,'PHP','Jones'),(8,'HTTP','Brown')]
write_csv(e)
运⾏结果:
写⼊完成
六、以字典表的形式写⼊CSV⽂件
def write_dict(q):
biao = ['编号','课程','讲师']
with open('file.csv', 'a', newline='') as f:
xieru = csv.DictWriter(f,biao)
xieru.writerows(q)  # writerows⽅法是⼀下⼦写⼊多⾏内容
print('写⼊完成')
u = [
{'编号': 9, '课程': 'SQL', '讲师': 'Miller'},
{'编号': 10, '课程': 'MySQL', '讲师': 'Davis'}
]
write_dict(u)
运⾏结果:
写⼊完成
这就Python对CSV⽂件的读取与写⼊,你看懂了吗?如果没看懂,欢迎留⾔交流哦!本⽂转⾃:blou/archives/1466

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。