数据编码与处理
如何读写csv文件
可以使用标准库中的csv模块,完成csv 文件读写
from urllib import urlretrieve urlretrieve('http://table.finance.yahoo.com/table.csv?s=000001.sz','pinan.csv') #请求的数据保存道csv文件 rf = open('pinan.csv','rb') # 打开文件 import csv re = csv.reader(rf) # 得到一个迭代器 print(re.next()) # 得到第一行数据 # 写的情况 wf = open("pinan.csv",'wb') we = csv.writer(wf) we.writerow([]) # 写入一行 we.flush() # 刷新
如何读写json数据
使用json模块中的loads,dumps函数来完成json数据读写
requests 模块进行网页数据的请求
import json l = [1,2,'qwer'] l2 = json.dumps(l) # 把字符串转为json格式 json.dumps(l,separators=[',',';']) #加分割符 json.dumps(l,sort_keys=True) #加排序 # json转为字符串 json.loads(l2) # load,dump 与加s的功能一样只是接口不一样, 他对接一个文件 # 如写到文件中 with open("f1.json",'wb') as f: json.dump(l,f) # 写到文件
在python中如何解析xml文档
使用from xml.etree import ElementTree 中的parse函数
from xml.etree import ElementTree f = open('Boot1.html') et = ElementTree.parse(f) # 解析 root = et.getroot() # 得到根节点 , root是其中的一个元素对象 root.tag # 查看标签 root.attrib #查看属性 root.get('name') # 查看name属性 root.text root.getchildren() # 获取子元素 得到一个列表 root.find("country") # 找到标签名是country的 找打第一个 root.findall('country') # 找到所有的country子元素返回一个列表 root.iterfind('country') # 找到所有的返回一个可迭代对象 root.iter('rank') # 递归的寻找标签是rank的子标签 root.findall('country[@name]') #找到country子元素含name属性的 root.findall('country[rank=5]')# 在到country下子标签rank的值为5
构建xml 文档
使用from xml.etree import ElementTree 中的 write方法写入
from xml.etree.ElementTree import Element,ElementTree e = Element("Data") # 一个标签 e.set('name','abc') # 设置属性 e.text = '123' # 设置值 e2 = Element("open") # 这只一个标签 e2.text = "xiao" e.append(e2) # e2 标为e的子标签 from xml.etree.ElementTree import tostring # 看到转后格式 print(tostring(e)) # 结果b'<Data name="abc">123</Data>' et = ElementTree(e) # 准备写道文件中 et.write("xiao.xml")
如何读写excel文件
使用第三方库xlrd 与xlwt 完成excel 的读写
import xlrd # 读取表 boak = xlrd.open_workbook('demo.xlsx') # 打开一张表 boak.sheets() # 获取这个文件中的所有张表 sheet = boak.sheet_by_index(0) #得到第一张表 sheet.nrows() # 表的行数 sheet.ncols() # 表的列数 cell = sheet.cell(0,0) # 获取第一个单元格 cell.ctype() #内容类型 1 表示文本, 2 表示数字 者的数字是根据这个来的 xlrd.XL_CELL_TEXT cell.value() # 查看这个单元格值 sheet.row(1) # 返回第一行返会一个列表 sheet.row_values(1) #直接取第一行值 sheet.row_values(1,start_colx=1,end_colx=5) # 取值指定从第二列开始取, 结束到 # 给行添加一个cell , 第一行第5列, 类型文本, 值 xiao sheet.put_cell(1,5,1,'xiao',None)
写
import xlwt wbook = xlwt.Workbook() # 创建一个book出来就xecel 文件 wsheet = wbook.add_sheet("test") #添加表名字test wsheet.write(1,2,2,5)# 添加值在1行5列 类型2 值为5 wsheet.save("file.xlsx") #保存到文件