博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
github/python/ show me the code 25题(二)
阅读量:7073 次
发布时间:2019-06-28

本文共 3922 字,大约阅读时间需要 13 分钟。

第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示:

{    "1":["张三",150,120,100],    "2":["李四",90,99,95],    "3":["王五",60,66,68]}

请将上述内容写到 student.xls 文件中,如下图所示:

#coding:utf-8#!/usr/bin/pythonimport sys,osimport jsonimport xlwt#f = open('students.txt')    with open (os.getcwd()+'\students.txt') as f:    dict = json.loads(f.read().decode('gbk'))    #json对应到python就是dict类型    xls = xlwt.Workbook()        #创建一个xls对象    sheet = xls.add_sheet('student')    for i in range(len(dict.keys())):        row = i        col = 0        sheet.write(row,col,dict.keys()[i])        for j in dict[dict.keys()[i]]:            col += 1            sheet.write(row,col,j)xls.save(os.getcwd()+'\student.xls')

xls文件的读写,涉及到了xlwt,xlrd等库。这个题目把字典信息写入xls文件。

利用json将信息结构化的读入,再用xlrt写进空的xls文件里

 

第 0015 题: 纯文本文件 city.txt为城市信息, 里面的内容(包括花括号)如下所示:

{    "1" : "上海",    "2" : "北京",    "3" : "成都"} 这个题和上面没什么不一样,代码就不放了。

第 0016 题: 纯文本文件 numbers.txt, 里面的内容(包括方括号)如下所示:

[    [1, 82, 65535],    [20, 90, 13],    [26, 809, 1024]] 注意这次的文本,实际上是个元素为序列的序列
#coding:utf-8import os,jsonimport xlwtwith open(os.getcwd()+'/numbers.txt') as f:    list = json.loads(f.read().decode('gbk'))    xls = xlwt.Workbook()    sheet = xls.add_sheet('city')    #只有sheet才可以写    for i in range(len(list)):        col = 0        for j in list[i]:            sheet.write(i,col,j)            col += 1xls.save(os.getcwd()+'/number.xls')

json.loads是个蛮神奇的函数对吧,它可以识别出你的文本究竟是个什么样的结构,是个字典,还是一个序列?

上面的两道题里,文本都是字典信息,所以在代码中为了便于理解,将变量名就起为了dict,同时这个dict也的确是个dict,在写入的时候,就是按dict的用法,将信息写入xls。

这道题的道理也是一样,重点还是理解dict和list的结构与用法。

 

第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如

下所示:

{ "1" : ["张三", 150, 120, 100], "2" : ["李四", 90, 99, 95], "3" : ["王五", 60, 66, 68]}
哇塞,直接就从dict,list跳到了xml????? git页面里已经给了相关资料的链接:http://www.cnblogs.com/skynet/archive/2013/05/06/3063245.html
#coding:utf-8import xlrdimport os,jsonfrom lxml import etreexls = xlrd.open_workbook(os.getcwd()+'\student.xls')sheet = xls.sheet_by_name("student")Dict = {}for row in range(sheet.nrows):    Attr = sheet.row_values(row)    ##此处用法    Dict[Attr[0]] = Attr[1:]    #形成key-value对        #如何操作xmlroot = etree.Element('root')child1 = etree.SubElement(root,"student")comm = etree.Comment(u'学生信息表 "id":[名字,数学,名字,英文]')child1.append(comm)child1.text = unicode(json.dumps(Dict).decode('gbk'))print child1.text.decode('gbk')tree = etree.ElementTree(root)tree.write(os.getcwd()+'\student.xml')

这里说句实在话,python里读写主要就是看库与接口,另一个就是要看相关文件的结构。

我对xml基本是不了解,所以也就不展开说明了。

第 0018 题: 将 第 0015 题中的 city.xls 文件中的内容写到 city.xml 文件中,如下所示:

{ "1" : "上海", "2" : "北京", "3" : "成都"}
#coding:utf-8import xlrdimport os,jsonfrom lxml import etreexls = xlrd.open_workbook(os.getcwd()+'\city.xls')sheet = xls.sheet_by_name("city")Dict = {}for row in range(sheet.nrows):    Attr = sheet.row_values(row)    ##此处用法    Dict[Attr[0]] = Attr[1:]    #形成key-value对        #如何操作xmlroot = etree.Element('root')child1 = etree.SubElement(root,"numbers")comm = etree.Comment(u'城市信息')child1.append(comm)child1.text = unicode(json.dumps(Dict).decode('gbk'))print child1.text.decode('gbk')tree = etree.ElementTree(root)tree.write(os.getcwd()+'\city.xml')

第 0019 题: 将 第 0016 题中的 numbers.xls 文件中的内容写到 numbers.xml 文件中,如下

所示:

[ [1, 82, 65535], [20, 90, 13], [26, 809, 1024]]
#coding:utf-8import xlrdimport os,jsonfrom lxml import etreexls = xlrd.open_workbook(os.getcwd()+'/number.xls')sheet = xls.sheet_by_name("city")List = {}for row in range(sheet.nrows):    Attr = sheet.row_values(row)    ##此处用法    List[row] = Attr    #形成key-value对        #如何操作xmlroot = etree.Element('root')child1 = etree.SubElement(root,"numbers")comm = etree.Comment(u'数字信息')child1.append(comm)child1.text = unicode(json.dumps(List).decode('gbk'))print child1.text.decode('gbk')tree = etree.ElementTree(root)tree.write(os.getcwd()+'/number.xml')

 

 

转载于:https://www.cnblogs.com/bakoom/p/5425766.html

你可能感兴趣的文章
ADO.NET操作数据库(一)
查看>>
指针与引用的本质区别
查看>>
Auto Layout 使用心得(五)—— 根据文字、图片自动计算 UITableViewCell
查看>>
M3U8在线视频文件下载合成MP4视频(自己想看电影)
查看>>
HTML5的布局的使用
查看>>
hdu 1068 二分图的最大匹配匈牙利算法
查看>>
一个IT人的非典型职场十年 (4)
查看>>
Netty之Recycler实现对象池
查看>>
Netty5入门学习笔记004-使用Netty传输POJO对象(上)
查看>>
Eclipse的快捷键总结
查看>>
RandomAccessFile相关(读写文件) --本文的正确性有待您验证。
查看>>
实现SPF垃圾邮件防护功能
查看>>
Slave IO: Yes Slave SQL: No Seconds Behind Mast...
查看>>
eclipse 使用Maven deploy命令部署构建到Nexus上
查看>>
大型系统中使用JMS优化技巧–Sun OpenMQ
查看>>
正则表达式-断言
查看>>
用git合并分支时,如何保持某些文件不被合并
查看>>
局部代码块、构造代码块、静态代码块
查看>>
聚类分析 ---- K-Means算法
查看>>
C語言最新標準-C11 「轉」
查看>>