在Python中处理CSV文件可以使用模块csv。有关csv模块的官方资料看这里

1 读取csv文件

csv.reader(csvfile, dialect='excel', **fmtparams)

使用reader()函数来读取csv文件,返回一个reader对象。reader对象可以使用迭代获取其中的每一行。

>>> import csv
>>> with open('userlist.csv','rt') as csv_file:
    csv_conent = [ row for row in csv.reader(csv_file)]

    
>>> csv_conent
[['Doctor', 'No'], ['Rosa', 'Klebb'], ['Mister', 'Big'], ['Auric', 'Goldfinger'], ['Ernst', 'Blofeld']]
>>> 

class csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)

可以使用DicReader()按照字典的方式读取csv内容,如下:

>>> import csv
>>> with open('userlist3.csv','rt',newline='') as csvfile:
    reader = csv.DictReader(csvfile, fieldnames =[1,2],delimiter=':')
    for row in reader:
        print(row[1],row[2])

        
Doctor No
Rosa Klebb
Mister Big
Auric Gold
Ernst Blofeld
>>> 

 

 

2 写入csv文件

csv.writer(csvfile, dialect='excel', **fmtparams)

使用writer()函数来写csv文件,返回一个writer对象。writer对象可以使用writerow()写一行数据,或者使用writerows()写多行数据

>>> import csv
>>> namelist = []
>>> namelist = [
    ['Doctor','No'],
    ['Rosa','Klebb'],
    ['Mister','Big'],
    ['Auric','Gold'],
    ['Ernst','Blofeld'],
    ]
>>> with open('userlist2.csv','wt') as c_file:
    csvout = csv.writer(c_file, delimiter=':')
    csvout.writerows(namelist)

    
>>> with open('userlist3.csv','wt',newline='') as c_file:
    csvout = csv.writer(c_file, delimiter=':')
    csvout.writerows(namelist)

    

生成的csv文件如下:

Python学习之文件操作(二)Python学习之文件操作(二)

 

class csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

使用DictWriter把字典类型的数据写入到csv文件中,如下:

>>> import csv
>>> villains = [
{'first': 'Doctor', 'last': 'No'},
{'first': 'Rosa', 'last': 'Klebb'},
{'first': 'Mister', 'last': 'Big'},
{'first': 'Auric', 'last': 'Goldfinger'},
{'first': 'Ernst', 'last': 'Blofeld'},
]
>>> with open('userlist3.csv','at',newline='') as csvfile:
    writer = csv.DictWriter(csvfile,['first','last'])
    writer.writerows(villains)

    

 

 Python学习之文件操作(二)

 

XML文件处理

XML是可扩展标记语言,它使用tag来分隔数据。

处理XML文件,可以使用python中的xml模块,它包含下面的几个子模块:

xml.etree.ElementTree: the ElementTree API, a simple and lightweight XML processor

xml.dom: the DOM API definition
xml.dom.minidom: a minimal DOM implementation
xml.dom.pulldom: support for building partial DOM trees

xml.sax: SAX2 base classes and convenience functions
xml.parsers.expat: the Expat parser binding

xml模块更多的相关内容参考官方文档

使用xml.etree.ElementTree来解析处理XML文件内容,如下:

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>
sample.xml

相关文章: