黑松山资源网 Design By www.paidiu.com
csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格:
就可以存储为csv文件,文件内容是:
No.,Name,Age,Score 1,mayi,18,99 2,jack,21,89 3,tom,25,95 4,rain,19,80
假设上述csv文件保存为"test.csv"
1.读文件
如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:
第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:
#!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' import csv #读 with open("test.csv", "r", encoding = "utf-8") as f: reader = csv.reader(f) rows = [row for row in reader] print(rows)
得到:
[['No.', 'Name', 'Age', 'Score'], ['1', 'mayi', '18', '99'], ['2', 'jack', '21', '89'], ['3', 'tom', '25', '95'], ['4', 'rain', '19', '80']]
要提取其中某一列,可以用下面的代码:
#!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' import csv #读取第二列的内容 with open("test.csv", "r", encoding = "utf-8") as f: reader = csv.reader(f) column = [row[1] for row in reader] print(column)
得到:
['Name', 'mayi', 'jack', 'tom', 'rain']
注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Name在第2列,而不能根据'Name'这个标题查询。这时可以采用第二种方法:
第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:
# -*- conding:utf-8 -*- __author__ = 'mayi' import csv #读 with open("test.csv", "r", encoding = "utf-8") as f: reader = csv.DictReader(f) column = [row for row in reader] print(column)
得到:
[{'No.': '1', 'Age': '18', 'Score': '99', 'Name': 'mayi'}, {'No.': '2', 'Age': '21', 'Score': '89', 'Name': 'jack'}, {'No.': '3', 'Age': '25', 'Score': '95', 'Name': 'tom'}, {'No.': '4', 'Age': '19', 'Score': '80', 'Name': 'rain'}]
如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:
#!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' import csv #读取Name列的内容 with open("test.csv", "r", encoding = "utf-8") as f: reader = csv.DictReader(f) column = [row['Name'] for row in reader] print(column)
得到:
['mayi', 'jack', 'tom', 'rain']
2.写文件
读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。
#!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' import csv #写:追加 row = ['5', 'hanmeimei', '23', '81'] out = open("test.csv", "a", newline = "") csv_writer = csv.writer(out, dialect = "excel") csv_writer.writerow(row)
得到:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- 【原神】V5.0攻略 | 林尼攻略一图流
- 李翊君.1993-相思的烈酒【上华】【WAV+CUE】
- 古巨基.1998-LEO.KU(国)【千禧年代】【WAV+CUE】
- 郭子.2001-原来你什么都不想要创作集丫滚石】【WAV+CUE】
- 《使命召唤:黑色行动6》新预告公布!10月25日发售
- Atlus《暗喻幻想》媒体评分汇总:高分好评如潮!
- 2024金摇杆奖提名揭晓 《黑神话》角逐最佳视觉设计!
- 群星《新说唱2024 第3期 (上)》[320K/MP3][32.76MB]
- 群星《新说唱2024 第3期 (上)》[FLAC/分轨][95.38MB]
- 群星《新说唱2024 第3期 (下)》[320K/MP3][31.36MB]
- 幻兽帕鲁手游什么时候正式上线 最新消息一览
- 西普大陆BOSS位置盘点 解锁天启纪元玩法
- 西普大陆精灵进阶培养攻略 精灵养成指南
- dnf手游法控法系职业哪个强 dnf手游法控法系职业强度排行
- 魔兽世界血藤护目镜图纸在哪买 wlk血藤护目镜图纸购买位置介绍