python读写csv文件(python读写csv文件判断文件是否存在)

网友投稿 616 2022-08-27


python读写csv文件(python读写csv文件判断文件是否存在)

文件读写的经典操作方式如下,通过内置的open函读取到每行内容,按照指定的分隔符进行分隔,然后对每一列的内容进行处理。这样的方式在处理制表符分隔的文件时,没什么问题,但是在处理csv文件时,会非常的头痛。

CSV文件格式简单理解,是逗号分隔的纯文本,但是实际上非常灵活。在excel导出的csv文件中,会遇到某个字段内部出现了逗号的情况,这样的字符在两端添加双引号来进行区分,示意如下

name,"jack,rose",26

传统的读取方式,单纯用逗号分隔,会得到4个字段

>>> with open('file.csv') as f:... for line in f:... print(line.rstrip().split(','))...['name', '"jack', 'rose"', '26']

而实际上,应该是3个字段。为了正确的处理csv格式,python内置了csv模块,专门用于读写csv格式的文件。读取csv文件的代码如下

>>> import csv>>> with open('file.csv', newline='') as f:... reader = csv.reader(f)... for row in reader:... print(row)...['name', 'jack,rose', '26']

可以看到,处理出来的格式和预期的一致,每一行的内容是一个列表。对于第一行为表头的csv文件

Name,Student,Agename,"jack,rose",26

也可以通过DictReader方法来读取,代码如下

>>> with open('file.csv') as f:... reader = csv.DictReader(f)... for row in reader:... print(row)...{'Name': 'name', 'Student': 'jack,rose', 'Age': '26'}

每一行的内容是一个dict, key为对应的表头。生成csv也有列表和字典两种写法

# 写入列表>>> import csv>>> line = ['name', 'jack,rose', '26']>>> with open('out.csv','w') as csvfile:... f = csv.writer(csvfile)... f.writerow(line)...21# 写入字典>>> head = ['Name', 'Student', 'Age']>>> line = {'Name': 'name', 'Student': 'jack,rose', 'Age': '26'}>>> with open('dict.csv','w') as csvfile:... f = csv.DictWriter(csvfile, fieldnames = head)... f.writeheader()... f.writerow(line)...21

对于csv文件,用csv模块来处理,可以保证结果的准确性,避免不必要的错误。

·end·

—如果喜欢,快分享给你的朋友们吧—

关注我们,解锁更多精彩内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python执行系统命令(python执行系统命令时无法显示中文)
下一篇:SpringBoot启动时自动执行代码的几种实现方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~