python技巧(四)格式文件

来源:互联网 发布:js确认框 编辑:程序博客网 时间:2024/05/29 19:43

1.如何读写CSV数据
使用标准库中的CSV模快

from urllib import urlretrieveurlretrieve('http://table.finance.yahoo.com/table.csv?s=000001.sz','pingan.csv')import csvrf = open('pingan.csv','rb')reader=csv.reader(rf)reader.next()wf = open('pingan_copy.csv','wb')writer =csv.writer(wf)writer.writerow(['Date','Open','Low','Close','Volume','Adj Close'])writer.writerow(reader.next())import csvwith open('pingan.csv','rb') as rf:    reader = csv.reader(rf)    with open('pingna2.csv','wb') as wf:        writer = csv.writer(wf)        headers = reader.next()        writer.writerow(headers)        for row in reader:            if row[0]<'2016-01-01':                break            if int(row[5])>=50000000:                writer.writerow(row)print 'end'

2.如何读写json数据
使用标准库中的json模快,其中loads,dumps函数可以完成json数据的读写

import jsonl =[1,2,'a',{'name':'bob'}]s = json.dumps(l)json.dumps(l,separators=[',',':'])json.dumps(l,sor_kets=True)l2=json.loads(s)with open('demo.json','wb') as f:    json.dump(l,f)

3.如何解析简单的xml文档
使用标准库中的xml.etree.ElementTree,其中的parse函数可以解析xml文档

from xml.etree.ElementTree import parsef = open('demo.xml')et = parse(f)root = et.getroot()root.tagroot.attribroot.textroot.text.strip()root.getchildren()for child in root:    print child.get('name')root.find('country')root.findall('country')root.iterfind('country')for e in root.iterfind('country'):    print e.get('name')root.findall('rank')root.iter('rank')root.findall('country/*')root.findall('.//rank/..')root.findall('country[@name]')

4.如何构建xml文档
使用标准库中的xml.etree.ElementTree,构建ElementTree,使用write方法写入文件

from xml.etree.ElementTree import Element,ElementTreee=Element('Date')e.set('name','abc')from xml.etree.ElementTree import tostringtostring(e)e.text = '123'tostring(e)e2=Element('Row')e3=Element('Open')e3.text = '8.80'e2.append(e3)tostring(e2)e.append(e2)tostring(e)et=ElementTree(e)et.write('demo.xml')import csvfrom xml.etree.ElementTree import Element,ElementTreedef csvToxml(fname):    with open(fname,'rb') as f:        reader = csv.reader(f)        headers = reader.next()        root = Element('Data')        for row in reader:            eRow = Element('Row')            root.append(eRow)            for tag,text in zip(headers,row):                e = Element(tag)                e.text = text                eRow.append(e)    pretty(root)    return ElementTree(root)et = csvToxml('pingan.csv')et.write('pingan.xml')def pretty(e,level=0):    if len(e)>0:        e.text = '\n'+'\t'+(level+1)        for child in e:            pretty(child,level+1)        child.tail = child.tail[:-1]    e.tail='\n'+'\t'*level

5.如何读写excel文件
利用Python读写excel

使用pip安装 pip install xlrd xlwt
使用第三方库xlrd和xlwt,这两个库分别用于excel读和写

import xlrdbook = xlrd.open_workbook('demo.xlsx')sheet = book.sheet_by_index(0)sheet.nrowssheet.ncolscell = sheet.cell(0,0)cell.ctypecell.valuesheet.cell(1,1)sheet.row_values(1)import xlwtwbook = xlwt.Workbook()#coding:utf8import xlrd, xlwtrbook = xlrd.open_workbook('demo.xlsx')rsheet = rbook.sheet_by_index(0)nc = rsheet.ncolsrsheet.put_cell(0, nc, xlrd.XL_CELL_TEXT, u'总分', None)for row in xrange(1, rsheet.nrows):    t = sum(rsheet.row_values(row, 1))    rsheet.put_cell(row, nc, xlrd.XL_CELL_NUMBER, t, None)wbook = xlwt.Workbook()wsheet = wbook.add_sheet(rsheet.name)style = xlwt.easyxf('align: vertical center, horizontal center')for r in xrange(rsheet.nrows):    for c in xrange(rsheet.ncols):        wsheet.write(r, c, rsheet.cell_value(r, c), style)wbook.save('output.xlsx')
0 0
原创粉丝点击