1.csv文件简介

csv是一个被行分隔符,列分隔符划分成行和列的文本
csv不指定字符编码
行分隔符为\r\n,最后一行可以没有换行符
列分隔符常为逗号和制表符
每一行称之为record

 

from pathlib import Path
p = Path("test.csv")
csv_body = '''\
id,name,age,comment
1,zs,18,"i'm 18"
2,ls,20,"this is a test string"
3,ww,23,"你好"
'''
p.write_text(csv_body)
print("-----------------------------------")
csv_body = '''\
id,name,age,comment
1,zs,18,"i'm 18"
2,ls,20,"this is a test string"
3,ww,23,"你好"
'''
with open('test.csv','w+') as f:
f.write(csv_body)
print("------------------------------------")

2.csv模块

reader()
返回一个DdictReader对象,是一个行迭代器
delimiter 列分隔符,逗号
lineterminator 行分隔符\r\n
quotechar 字段引用符号,缺省为“。双引号 writer()
返回dictwriter的实例
主要方法有writerow,writerows,writerow(iterable)
import csv
with open('test.csv') as f:
reader = csv.reader(f)
for i in reader:
print(i)
import csv
from pathlib import Path
filename = "test.csv" csv_body = """id,name,age,comment
1,harden,28,nba player
2,curry,29,mvp
3,james,34,champion
""" rows = [[4,'durant',29,'Scoring king']] with open(filename,'a+') as f:
f.write(csv_body)
writer=csv.writer(f)
writer.writerows(rows) with open(filename,'r+') as r:
reader = csv.reader(r)
for i in reader:
if i:
print(i)

3.ini文件处理,作为配置文件ini文件很流行

#用来操作ini文件;可以讲section当作key,section存储着键值对组成的字典,可以把ini文件当作一个嵌套的字典,默认使用有序字典
#中括号里面的部分称之为section,没一个section之内,都是key,value形成的键值对,key称为option选项
import configparser
from configparser import ConfigParser filename = '../Initest.ini'
cfg = ConfigParser()
cfg.read(filename) for k,v in cfg.items():
# print(k,cfg.items(k))
print(k)
import json
import configparser
from configparser import ConfigParser filename = '../Initest.ini'
jsonname = 'jsontest.json'
cfg = ConfigParser()
cfg.read(filename) dic = {}
for sec in cfg.sections():
dic[sec] = dict(cfg.items(sec))
print(dic) with open(jsonname,'w') as f:
json.dump(dic,f)

Py't'hon之csv,ini&序列化,反序列化的更多相关文章

  1. 5) ModelSerializer(重点) 基表 测试脚本 多表关系建外键 正反查 级联 插拔式连表 序列化反序列化整合 增删查 封装response

    一.前戏要做好 配置:settings.py #注册drf INSTALLED_APPS = [ # ... 'api.apps.ApiConfig', 'rest_framework', ] ​ # ...

  2. php json与xml序列化/反序列化

    在web开发中对象的序列化与反序列化经常使用,比较主流的有json格式与xml格式的序列化与反序列化,今天想写个jsop的小demo,结果发现不会使用php序列化,查了一下资料,做个笔记 简单数组js ...

  3. 序列化反序列化api(入门级)

    定义: java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 为什么字符串通常也会进行序列化? 对象需要进行序列化的原因:保证对象的状态不变 ...

  4. python_way ,day5 模块,模块3 ,双层装饰器,字符串格式化,生成器,递归,模块倒入,第三方模块倒入,序列化反序列化,日志处理

    python_way.day5 1.模块3 time,datetime, json,pickle 2.双层装饰器 3.字符串格式化 4.生成器 5.递归 6.模块倒入 7.第三方模块倒入 8.序列化反 ...

  5. C#之你懂得的序列化/反序列化

    前言:写此文章一方面是为了巩固对序列化的认识,另一方面是因为本人最近在面试,面试中被问到“为什么要序列化”.虽然一直在使用,自己也反复的提到序列化,可至于说为什么要序列化,还真的没想过,所以本文就这样 ...

  6. springboot学习(三)——http序列化/反序列化之HttpMessageConverter

    以下内容,如有问题,烦请指出,谢谢! 上一篇说掉了点内容,这里补上,那就是springmvc的http的序列化/反序列化,这里简单说下如何在springboot中使用这个功能. 使用过原生netty ...

  7. java序列化反序列化深入探究

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  8. java序列化反序列化深入探究(转)

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  9. C# XML序列化/反序列化参考

    .NET提供了很不错的XML序列化/反序列化器,(它们所在的命名空间为System.Xml.Serialization)这是很方便的,下面对它的使用做一些总结,以供参考. 1,简单序列化 public ...

随机推荐

  1. js学习(六)- js对象创建

    //---------------------js文件--------------------- var namespace02=new Object(); namespace02.Person=fu ...

  2. awk使用总结

    转载自董的博客 1. 什么是awk awk是Unix/Linux提供的样式扫描与处理工具,非常擅长处理结构化数据和生成表单.与sed 和grep 很相似,但功能却超过大于两者,由于awk具备各种脚本语 ...

  3. 第四百零六节,自定义用户表类来继承Django的用户表类,

    第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...

  4. Http url MVC Request Query Form 传参专贴

    一.工具区 [参考]postman中 form-data.x-www-form-urlencoded.raw.binary的区别--转 二..net MVC 三..net WebForm 四.Java ...

  5. 使用docker安装tomcat服务

    1. 拉取官方tomcat镜像 docker pull tomcat 2. 创建tomcat容器目录 [root@WSyHRQ171356 /]# mkdir /tomcat/test 3. 创建测试 ...

  6. 最全36种python设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过 ...

  7. C_C++变量命名规则

    变量命名规则是为了增强代码的可读性和容易维护性.以下为C++必须遵守的变量命名规则: 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成. 第一个字母必须是字母或者下划线开头. 不 ...

  8. JVM可达性分析算法中,哪些可以作为 root ?

    被启动类(bootstrap 加载器)加载的类和创建的对象: JavaStack 中的引用的对象 (栈内存中引用的对象): 方法区中静态引用指向的对象: 方法区中常量引用指向的对象: Native 方 ...

  9. 线程锁Lock

    from threading import Thread, Lock import time def func(): global n n -= 1 n = 10 t_list = [] for i ...

  10. Java进程与线程的区别

    每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程.比如浏览器,打开一个浏览器就相当于启动了一个进程. 线程指进程中的一个执行流程,一个进程可以包含多个线程. 每个进程都需要操作系统为其分配 ...