zoukankan      html  css  js  c++  java
  • Py't'hon之csv,ini&序列化,反序列化

    1.csv文件简介

    csv是一个被行分隔符,列分隔符划分成行和列的文本
    csv不指定字符编码
    行分隔符为
    ,最后一行可以没有换行符
    列分隔符常为逗号和制表符
    每一行称之为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 行分隔符
    
    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)
    本文为原创文章,转载请标明出处
  • 相关阅读:
    PHP-Resque 简介
    基于Redis的消息队列php-resque
    sms_queue 短信队列
    那些最好的轮子
    Sphinx高亮显示关键字
    atitit.系统托盘图标的设计java swing c# .net c++ js
    atitit.验证码识别step4--------图形二值化 灰度化
    atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
    atitit.验证码识别step2------剪贴板ClipBoard copy image图像 attilax总结
    atitit.loading的设计与实现控件选型attilax 总结
  • 原文地址:https://www.cnblogs.com/harden13/p/9073056.html
Copyright © 2011-2022 走看看