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模块)处理的更多相关文章

  1. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

  2. 向php文件中添加php.ini文件

    向php文件中添加php.ini文件 默认情况下,php是没有php.ini配置文件的,必须手工添加php.ini文件 在php安装目录中,复制php.ini文件到/usr/local/php/lib ...

  3. C#中选中指定文件并读取类似ini文件的内容

    一.背景 由于项目中需要去读取设备的配置信息,配置文件的内容和INI配置文件的格式类似,所以可以按照INI文件的方式来处理.涉及如何打开一个文件,获取打开的文件的路径问题,并读取选中的文件里边的内容. ...

  4. C# 使用文件流来读写ini文件

    背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI封装的help类,用起来倒也顺手. ...

  5. python基础——15(加密、excel操作、ini文件操作、xml操作模块及数据格式分类)

    一.加密模块 1.有解密的加密方式(base64) #base64加密 import base64 str_encrypt = input("输入要加密的字符串:\n") base ...

  6. Python中.ini文件使用

    .ini文件 一般用来配置常量或者数据库链接语句等,是纯文本格式,所以可以用纯文本编辑器来编辑其内容. ;文件格式如下 ;注释用分号开头,setion 节 [setion] key = value s ...

  7. Python基础之读取ini文件

    基本使用方法 第一步:准备一份INI文件.如test1.ini [ITEMS] item1=1 item2=2 item3=3 item4=4 [ITEM1] test1=aaa [ITEM2] te ...

  8. python操作ini文件

    简介 ini文件作为常见的配置文件,因此需要对ini文件做处理,此处使用configparser模块,本文介绍以下ini文件常用的处理方式. 需要读取的ini文件 如下文件,[ ]包含的称为secti ...

  9. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  10. python:利用configparser模块读写配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

随机推荐

  1. java Random 抢红包算法

    红包有一个总金额和总数量,领的时候随机分配金额. 维护一个剩余总金额和总数量,分配时,如果数量等于1,直接返回总金额,如果大于1,则计算平均值,并设定随机最大值为平均值的两倍,然后取一个随机值,如果随 ...

  2. Spring Shell入门介绍

    目录 Spring Shell是什么 入门实践 基础配置 简单示例 注解@ShellMethod 注解@ShellOption 自定义参数名称 设置参数默认值 为一个参数传递多个值 对布尔参数的特殊处 ...

  3. iperf—流量测试

    iperf是另外一款用于流量测试的软件,主要运行于Windows系统和安卓系统的手机/PAD(IOS系统下载需要收费). 一个工作在Server模式,另外一个工作在Client模式,输入Server的 ...

  4. This is this

    首先,我们来了解一下 this 的几种绑定方式: this的默认绑定: 当一个函数没有明确的调用对象的时候,即作为独立函数调用时,this绑定到全局window对象. function func() ...

  5. 将python工程部署到新服务器(对virtualenv工具进行环境迁移)

    将python工程部署到新服务器(对virtualenv工具进行环境迁移) # 从开发的电脑上导出 pip list 到 requirements.txt 文件pip freeze > requ ...

  6. 将网页html文件离线下载保存到本地的方法

    (1)复制想要离线的网页的网址: 范例:http://bbs.xyaz.cn/thread-52540-1-1.html (2)将网址放入迅雷中,让其将html文件下载下来. (3)下载结果

  7. 19 SpringMVC 拦截器

    1. 拦截器的概述(1)SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术.(2)可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链 中的 ...

  8. Win10最详细的优化设置 完美解决磁盘100%占用

    1.用360优化win10后开不了机的问题原因是禁用了三个服务:在360应用软件服务里dmwappushsvc.diagnsticsTrackingservice.coreMessaging这三个要开 ...

  9. xe.10.2的下载路径

    为了这个玩意,我折腾了一天,为了以后自己还用到 官网地址: http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2 ...

  10. CSP(noip)中的简单对拍写法

    以a+b为例 这是随机数据 #include<iostream> #include<cstdio> #include<ctime> using namespace ...