数据编码与处理

如何读写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") #保存到文件

 

 

posted @ 2022-07-18 21:38  huxl1  阅读(24)  评论(0编辑  收藏  举报