Python的csv文件(csv模块)和ini文件(configparser模块)处理
Python的csv文本文件(csv模块)和ini文本文件(configparser模块)处理
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.csv文件
1>.CSV文件简介
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
CSV是一个被行分隔符,列分隔符划分成行和列的文本文件。 CSV不指定字符编码。 行分隔符为"\r\n",最后一行可以没有换行符。 列分隔符常为逗号或者制表符。 每一行称为一条记录record。 字段可以使用双引号括起来,也可以不使用。如果字段中出现了双引号,逗号,换行符必须使用双引号括起来。如果字段的值是双引号,使用两个双引号表示一个转义。 表头可选,和字段列对其就行了。
2>.EXCEL默认语法
delimiter
列分隔符,默认为逗号(",")
lineterminator
行分隔符,windows默认为"\r\n" qutechar
字段的引用符号,缺省为双引号. 双引号的处理
doublequote双引号的处理,默认为True。如果碰到数据中有双引号,而quotechar也是双引号,True则使用2个双引号表示,False表示使用转义字符作为双引号的前缀。
escapechar一个转义字符,默认为None。
writer=csv.writer(f,doublequto=Flase,escapechar='@')遇到双引号,则必须提供转义字符 qutoing指定双引号的规则
QUOTE_ALL所有字段
QUOTE_MINIMAL特殊字符字段,Excel方言使用该规则
QUOTE_NONNUMERIC非数字字段
QUOTE_NONE都不使用引号。
3>.手动生成CSV文件
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie from pathlib import Path file_path = Path(r"E:\temp\test\test.csv") parent = file_path.parent if not parent.exists():
parent.mkdir(parents=True) csv_body="""\
id,name,age,comment
1,jason,19,"I'm 19"
2,Tom,20,"this is a ""test"" string."
3,YinZhengjie,23,"尹正杰到此一游!"
""" file_path.write_text(csv_body)
4>.Python中的CSV模块使用案例
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie import csv
from pathlib import Path file_path = Path(r"E:\temp\test\test.csv") with open(str(file_path)) as f:
"""
csv的reader函数返回一个reader对象,它是一个迭代器。
"""
reader = csv.reader(f)
print(next(reader))
print(next(reader))
for line in reader:
print(line) #说明row行,需要一个可迭代对象就可以,可迭代的每一个元素,将作为csv行的每一个元素。
rows = [
[4,"jerry",22,"jerry"],
[5,"hdfs",16,"Hadoop"],
[(1,),(2,)],
"这是字符串"
] row = rows[0] """
windows下会在每行末尾多出一个"\r",解决办法就是: newline=""
"""
with open(str(file_path),"a",newline="") as f:
"""
csv的writer函数返回的是一个DictWrite的实例。
主要方法有writerow和writerows,但需要注意我们在使用该方法时需要对文件有相应的处理权限哟~
"""
writer =csv.writer(f)
writer.writerow(row)
writer.writerows(rows)
二.ini文件
1>.ini文件格式说明
作为配置文件,ini文件格式的很流行。比如我们非常熟悉的MySQL数据库的配置文件就是使用更多这种文件格式。接下来我们来看一组案例。 [DEFAULT]
a = test [mysql]
default-charcter-set = utf8 [mysqld]
datadir = /dbserver/data
port = 33060
character-set-server = utf8
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 接下来我们对上面一段ini格式的文件进行一个简单说明:
中括号里面的部分称为section,译作为节,区,段。
每一个section内,都是key=value形成的键值对,key称为option选项。
注意,这里的DEFAULT是缺省的section的名字,必须大写。
2>.Python中的ConfigParser模块使用案例
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie from configparser import ConfigParser filename = "test.ini"
newfilename = "mysql.ini" cfg = ConfigParser()
"""
方法签名为:
def read(self, filenames, encoding=None)
读取ini文件,可以是单个文件,也可以是文件列表。可以指定文件编码。通过查看源码发现返回的是需要读取的文件列表。
"""
read_ok = cfg.read(filename,encoding="utf8")
print(read_ok) print(cfg.sections()) #返回section列表,缺省section不包括在内。
print(cfg.has_section("client")) #判断section是否存在 for k,v in cfg.items(): #这里没有指定section,则返回所有section名字及其对象
print(k,type(k))
print(v,type(v))
print(cfg.items(k)) #咱们这里指定了section名称,则返回这个指定section的键值对组成的二元组。
print() print("*" * 20 + "我是分隔符" + "*" * 20) tmp = cfg.get("mysqld","port") #从指定的段的选项取值,如果找到就返回,如果没有找到就去DEFAULT段找
print(type(tmp),tmp)
tmp = cfg.get("mysqld","yinzhengjie",fallback="python") #如果没有找到我们可以让他返回特定的字符串。
print(type(tmp),tmp)
tmp = cfg.getint("mysqld","port") #和get方法类似,只不过它返回指定数据类型。
print(type(tmp),tmp) if cfg.has_section("test"): #判断是否存在"test"这个section
cfg.remove_option("test") #移除"test"这个section,当然我们还可以在后面加一个参数,用来移除"test"下的某个option。 cfg.add_section("students") #添加一个students的section名称,下面就是为该section设置option属性
cfg.set("students","name","yinzhengjie")
cfg.set("students","age","")
cfg.set("students","habby","LOL") with open(newfilename,"w") as f: #
cfg.write(f)
Python的csv文件(csv模块)和ini文件(configparser模块)处理的更多相关文章
- python中configparser模块读取ini文件
python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...
- 向php文件中添加php.ini文件
向php文件中添加php.ini文件 默认情况下,php是没有php.ini配置文件的,必须手工添加php.ini文件 在php安装目录中,复制php.ini文件到/usr/local/php/lib ...
- C#中选中指定文件并读取类似ini文件的内容
一.背景 由于项目中需要去读取设备的配置信息,配置文件的内容和INI配置文件的格式类似,所以可以按照INI文件的方式来处理.涉及如何打开一个文件,获取打开的文件的路径问题,并读取选中的文件里边的内容. ...
- C# 使用文件流来读写ini文件
背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI封装的help类,用起来倒也顺手. ...
- python基础——15(加密、excel操作、ini文件操作、xml操作模块及数据格式分类)
一.加密模块 1.有解密的加密方式(base64) #base64加密 import base64 str_encrypt = input("输入要加密的字符串:\n") base ...
- Python中.ini文件使用
.ini文件 一般用来配置常量或者数据库链接语句等,是纯文本格式,所以可以用纯文本编辑器来编辑其内容. ;文件格式如下 ;注释用分号开头,setion 节 [setion] key = value s ...
- Python基础之读取ini文件
基本使用方法 第一步:准备一份INI文件.如test1.ini [ITEMS] item1=1 item2=2 item3=3 item4=4 [ITEM1] test1=aaa [ITEM2] te ...
- python操作ini文件
简介 ini文件作为常见的配置文件,因此需要对ini文件做处理,此处使用configparser模块,本文介绍以下ini文件常用的处理方式. 需要读取的ini文件 如下文件,[ ]包含的称为secti ...
- python:实例化configparser模块读写配置文件
之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...
- python:利用configparser模块读写配置文件
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...
随机推荐
- linux 下mysql 关闭 启动
一. 启动 .使用 service 启动:service mysql start .使用 mysqld 脚本启动:/etc/init.d/mysql start .使用 safe_mysqld 启动: ...
- php删除目录及目录下的内容
今天遇到一个问题: java写的API,ppt转图片生成的目录和文件 在使用php调用API完成后,再使用php进行删除时,遇到了删除失败的问题 部署的环境是Ubuntu 导致删除失败的原因是权限的问 ...
- 【layui】【jquery】通过layero获取iframe的元素
$(layero).find('iframe').contents().find('#id'); $(layero).find('iframe').contents().find('#jqGridY' ...
- kali更新软件源
首先就是修改软件源文件 /etc/apt/sources.list 可以用leafpad打开,在终端中键入: leafpad /etc/apt/sources.list 原码是kali官方的软件源,更 ...
- golang微服务框架go-micro 入门笔记2.1 micro工具之micro api
micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.s ...
- Django开发简单博客流程
什么是Django? Django是一个基于python的高级web开发框架 它能够让开发人员进行高效且快速的开发 高度集成(不用自己造轮子), 免费并且开源 当前路径创建工程 django-admi ...
- 移动端开发之响应式开发和bootstrap基础
响应式开发 (就是利用媒体查询针对不同宽度的设备进行布局和样式的设置,从而设配不同设备的目的) 响应式布局容器响应式需要一个父级作为布局容器,来配合子级元素来实现变化效果 原理:不同屏幕下,通过媒体查 ...
- VMware学习笔记之在虚拟机中使用Ghost系统盘安装xp黑屏卡在光标闪无法进入系统
使用ghost安装后,无法进入系统,卡在光标闪动,请参考如下: https://www.cnblogs.com/mq0036/p/3588058.html https://wenku.baidu.co ...
- txt文件每行内容与图片文件名字组合,输出txt格式
import os dir_list = os.listdir('C:\\Users\\10107472\\Desktop\\practice\\JPEGImages')i=0f1=open('C:\ ...
- 2019 汇量科技java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.汇量科技等公司offer,岗位是Java后端开发,因为发展原因最终选择去了汇量科技,入职一年时间了,也成为了面 ...