• Python学习week7-csv与ini文件处理


    1、CSV文件

    1.1、csv文件简介

    # 什么是csv文件?csv是一个被行分隔符,列分隔符分成行和列的文本文件;

    # csv不指定字符编码;

    # 行分隔符为 ,最后一行可以没有换行符;

    # 列分隔符通常为逗号,或者制表符;

    # 每一行为一条记录record;字段可以使用双引号括起来,也可以不使用;如果字段中出现了双引号、逗号、换行符必须使用双引号括起来,如果字段的值是双引号,则要使用两个双引号表示一个转义;

    1.2、手动生成csv文件

    # 手动写入csv文件,注意按照cvs文件格式标准写入即可;

    p= Path('f:/tmp/mycsv/test.csv')
    parent=p.parent
    if not parent.exists():
        parent.mkdir(parents=True)
    
    csv_body='''
    id,name,age,comment
    1,zs,18,'zhangsan'
    2,ls,20,"this is a ""test"" string"
    3,www,23,"你好
    计算机
    "
    '''
    p.write_text(csv_body)

    # 注意引号问题;

    1.3、csv模块

    # 导入csv模块 import csv

    # reader(csvfile,dialect='excel',**fmtparams)

    # 返回reader对象,是一个行迭代器;

    # 默认使用excel方言,如下:

    • delimiter 列分隔符,逗号;
    • lineterminator 行分隔符,
    • quotechar 字段的引用符号,缺省为“双引号;

    # 主要方法有:writerow、writerows

    import csv
    p = Path('f:/tmp/mycsv/test.csv')
    rows = [
        [4,'tom',22,'toms'],
        [5,'jerry',23,'jerry'],
        (6,'justin',22,'just	"in'),
        "abcdefghi",
        ((1,),(2,))
    ]
    
    row = rows[0]
    
    with open(str(p),'w',newline='') as f:
        writer = csv.writer(f)
        writer.writerow(row)
        writer.writerows(rows)
    
    
    with open(str(p)) as f:
        reader = csv.reader(f)
        print(next(reader))
        print(next(reader))
    
        for line in reader:
            print(line)

    # 说明写入的row行,需要一个可迭代对象就可以,可迭代的每一个元素,将作为CSV行的每一个元素;

    # 特别要注意下:windows下会在每行多出一个 ,造成如下情况:

    解决办法open('test.csv','w',newline=''),解决后为:

    2、ini文件处理

    2.1、configparser模块

    # 导入模块 from configparser import ConfigParser

    # 将字典写入一个ini文件:

    from configparser import ConfigParser
    import json
    cfg=ConfigParser()
    
    d={
        'default':{'a':'test'},
        'mysql':{
            'default-character-set':'utf-8',
            'a':1000
        },
        'mysqld':{
            'datadir':'/dbserver/data',
            'port':3306,
            'character-set-server':'utf-8',
            'sql_mode':'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
        }
    }
    
    cfg.read_dict(d)
    
    cfg.write(open('test.ini','w'))

    # 将一个ini文件读取并存为字典

    cfg2=ConfigParser()
    
    cfg2.read('test.ini',encoding='utf-8')
    dest={}
    for sect in cfg2.sections():
        print(sect,cfg2.items(sect))
        dest[sect]=dict(cfg2.items(sect))
    
    print(dest)
  • 相关阅读:
    模糊搜索工具fzf的安装和使用
    ubuntu状态栏位置调整
    毕业相关事项
    vimium拓展程序使用技巧
    python文件生成exe可执行文件
    解决pycharm无法识别PyQt4.QtCore的问题
    pyqt4安装以及pycharm下环境配置
    动态规划——最小编辑代价
    深度学习绘图工具
    Maven Spring JUnit 在Maven Clean Install时报
  • 原文地址:https://www.cnblogs.com/soulgou123/p/9827456.html
Copyright © 2020-2023  润新知