温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中CSV文件怎么使用

发布时间:2022-07-05 11:51:54 来源:亿速云 阅读:213 作者:iii 栏目:开发技术

本篇内容介绍了“Python中CSV文件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    一、csv文件介绍

    1、csv文件简介

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。

    2、为什么要使用csv文件

    在Linux中我们可以通过命令在数据库中把表导出来为csv结尾的文件,其实就是以逗号分割分txt文件,此文件我们可以在windows中打开并且为表格的形式,方便我们进行查看与再次操作。

    eg:

    MariaDB [test]> select * from 表名 into outfile "/tmp/test.csv" fields terminated by ",";

    二、csv文件查看

    注意:这里我是把csv文件和python代码都放在同级目录,否则要指定路径!!!

    1、测试文件创建

    (1)这里我们以windows中的csv文件来做实验

    Python中CSV文件怎么使用

    (2)我们可以选中内容复制进去,也可以上传到linux中,这里我们选择前者

    [root@python _test]# vim test.csv                      ###可以发现复制进去的是以空格为分隔符
    id      username        passwd  age
    1       dream1  123     21
    2       dream2  456     22
    3       dream3  789     23
    
    ### 把空格替换为逗号
    [root@python _test]# sed -i 's/\s\+/,/g' test.csv

    2、查看csv文件(列表)

    (1)读出结果

    [root@python _test]# vim _test.py 
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    with open('test.csv', encoding="utf-8") as f:
        reader = csv.reader(f)
        print(reader)
        print(list(reader))
    
    ### 查看结果
    [root@python _test]# python _test.py
    <_csv.reader object at 0x7f54d9a01eb8>
    [['id', 'username', 'passwd', 'age'], ['1', 'dream1', '123', '21'], ['2', 'dream2', '456', '22'], ['3', 'dream3', '789', '23']]

    (2)遍历(从第一行读取)

    [root@python _test]# vim _test.py 
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    with open('test.csv', encoding="utf-8") as f:
        reader = csv.reader(f)
        for i in reader:
            print(reader.line_num, i)
     
     ### 查看结果
    [root@python _test]# python _test.py
    1 ['id', 'username', 'passwd', 'age']
    2 ['1', 'dream1', '123', '21']
    3 ['2', 'dream2', '456', '22']
    4 ['3', 'dream3', '789', '23']

    (2)遍历(从第二行读取)

    [root@python _test]# vim _test.py
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    with open('test.csv', encoding="utf-8") as f:
        reader = csv.reader(f)
        ### 这个就是我们得表头
        next(reader)
        for i in reader:
            print(reader.line_num, i)
            
    ### 查看结果
    [root@python _test]# python _test.py    
    2 ['1', 'dream1', '123', '21']
    3 ['2', 'dream2', '456', '22']
    4 ['3', 'dream3', '789', '23']

    3、查看csv文件(字典)

    (1)查看

    [root@python _test]# vim _test.py
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    with open('test.csv', encoding="utf-8") as f:
        reader = csv.DictReader(f)
        ### 表头
        print (reader.fieldnames)
        print (reader,type(reader))
        for i in reader:
            print (i)
            
    ### 查看结果
    [root@python _test]# python _test.py
    ['id',  'username',  'passwd',  'age']
    <csv.DictReader object at 0x7f3b02213a20> <class 'csv.DictReader'>
    OrderedDict([('id', '1'), ('username', 'dream1'), ('passwd', '123'), ('age', '21')])
    OrderedDict([('id', '2'), ('username', 'dream2'), ('passwd', '456'), ('age', '22')])
    OrderedDict([('id', '3'), ('username', 'dream3'), ('passwd', '789'), ('age', '23')])

    (2)查看第一列(id)

    优点:我们不知道表头在具体那列,我们可以通过表头名来获取整列数据,即我们可以随便调整顺序也不会影响我们的数据读取!!!

    [root@python _test]# vim _test.py
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    with open('test.csv', encoding="utf-8") as f:
        reader = csv.DictReader(f)
        for i in reader:
            print (i['id'])
            
    ### 查看结果
    [root@python _test]# python _test.py
    1
    2
    3

    4、写入文件(列表)

    [root@python _test]# vim _test.py
    #!/usr/bin/env python
    #coding:utf-8
    import csv
    li = [["id","user","性别"],["1","dreamya1","男"],["2","dreamya2","女"]]
    with open('user.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        for i in li:
            writer.writerow(i)
    
    ### 查看结果
    [root@python _test]# python _test.py 
    [root@python _test]# cat user.csv 
    id,user,性别
    1,dreamya1,男
    2,dreamya2,女

    下载到windows中查看:

    [root@python _test]# sz user.csv

    Python中CSV文件怎么使用

    5、写入文件(字典)

    [root@python _test]# vim _test.py
    import csv
    #coding:utf-8
    headers = ['id', 'username','passwd']
    li = [{'id':'1','username':'dream1','passwd':'123'},
            {'id':'2','username':'dream2','passwd':'456'},
            ]
            
    with open('user.csv', 'w', newline='') as f:
        ### 表头传入
        writer = csv.DictWriter(f, headers)
        writer.writeheader()    
        ### 一行一行写入
        for i in li:
            writer.writerow(i)
            
        ### 直接把li写入(多行)
        writer.writerows(li)
    
    ### 查看结果
    [root@python _test]# python _test.py
    [root@python _test]# cat user.csv 
    id,username,passwd
    1,dream1,123
    2,dream2,456
    1,dream1,123
    2,dream2,456

    windows中查看:

    [root@python _test]# sz user.csv

    Python中CSV文件怎么使用

    “Python中CSV文件怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI