python中CSV文件的介绍

CSV文件

csv文件简介
逗号分隔符Comma-Separated Values

  • csv是一个被行分隔符、列分隔符划分成行和列的文本文件
  • CSV不指定字符编码
    行分隔符为\r\n,最后一行可以没有换行符
  • 列分隔符常为逗号或制表符
  • 每一行称为一条记录record
    字段可以使用双引号括起来,也可以不适用,如果字段中出现双引号,逗号,换行符必须用双引号括起来
    表头可选,和字段列对齐就行了
    手动生成csv文件
#手动生成csv文件
f=open('test.csv','w+')
body="""\
id,name,age,comment
1,big,18,'this is '
2,ls,20,'this is a'tesd'
"""
f.write(body)
from pathlib import Path
p=Path('c:/Users/ASUS/test.CSV')
with p.open('r+') as f:
    print(f.read())

在这里插入图片描述
在这里插入图片描述
csv模块
reader(csvfile,dialect=‘excel’,**fmtparams),返回reader对象,是一个行迭代器
默认使用excel方言,如下:

  • delimiter列分隔符,逗号

  • lineterminator 行分隔符\r\n

  • quotechar字段的引用符号,缺省为""双引号

  • 双引号处理

    • doublequote双引号的处理,默认为True.如果碰到数据中有双引号,而quotechar也是双引号,true则使用2个双引号表示,False表示使用转义字符将作为双引号的前缀
    • escapechar一个转移字符,默认为None
    • writer=csv,writer(f,doublequote=False,escapechar=’@’)遇到双引号,则必须提供转义字符
  • quoting指定双引号的规则

    • QUOTE_ALL所有字段
    • QUOTE_MINIMAL特殊字符字段,Excel方言使用该规则
    • QUOTE_NONNUMERIC非数字字段
    • QUOTE_NONE都不适用引号
      writer(csvfile,dialect=‘excel’,**fmtparams)返回DictWriter的实例,主要方法有writerow,writerows
#csv读取
import csv
from pathlib import Path
p=Path('C:/Users/ASUS/test.csv')
with open(str(p)) as f:
    reader=csv.reader(f)
    print(next(reader))
    for line in reader:
        print(line)

在这里插入图片描述

#csv写入
rows=[[4,'tom',22,'tom'],[5,'jerry',24,'jerry']]
row=rows[0]
with open(str(p),'a') as f:
    writer=csv.writer(f)
    writer.writerow(row)  #适用于单行
    writer.writerows(rows)   #适用于多行

在这里插入图片描述
说明row行,需要一个可迭代对象就可以,可迭代的每一个元素,将作为csv行的每一个元素
windows下会在每行末尾多出一个\r,解决办法open(‘test.csv,‘w’,newline=’ ')

ini文件处理

作为配置文件,ini文件格式很流行

[DEFAULT]
a = test

[mysql]
default-character-set=utf8

[mysqld]
datadir =/dbserver/data
port = 33060
character-set-server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

中括号里面的部分称为section,译为节、区、段
每一个section内都是key=value形成的键值对,key称为option选项

configparser模块

configparser模块的ConfigParser类就是用来操作。
可以将section当作key,section存储着键值对组成的字典,可以把ini配置文件当做一个嵌套的字典。默认使用的是有序字典。

import configparser
cfg=configparser.ConfigParser()
read=cfg.read('C:/Users/ASUS/temp/mysql.ini')
print(read)
print(cfg.sections()) #显示所有的区,但不现实缺省section
print(cfg.options('mysql'))#显示
print(cfg.has_option('s','1'))
#在制定的段的选项上取值,如果找到返回,如果没有找到就去DEFAULT段寻找
print(cfg.get('mysql','a'))
print(cfg.get('mysql','default-character-set'))
#没有section,则返回所有section名字及其对象;如果制定section,则返沪i这个制定的section的键值对组成的二元组
print(cfg.items())
for i in cfg.items():
    print(i)
print(cfg.items('mysql'))
# 移除section及其所有option
print(cfg.remove_section('mysql'))

在这里插入图片描述
在这里插入图片描述

  • read(filenames,encoding=None):读取ini文件,可以是单个文件,也可以是文件列表。可以只当文件编码
  • sections()返回section列表,缺省section不包括在内
    add_section(section_name)增加一个section
    has_section(section_name)判断section是否存在
  • get(section,option,*)
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值