第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示:
{“1”:[“张三”,150,120,100],”2″:[“李四”,90,99,95],”3″:[“王五”,60,66,68]}
请将上述内容写到 student.xls 文件中,如下图所示:
阅读资料 腾讯游戏开发 XML 和 Excel 内容相互转换
第 0015 题: 纯文本文件 city.txt为城市信息, 里面的内容(包括花括号)如下所示:
{“1” : “上海”,”2″ : “北京”,”3″ : “成都”}
请将上述内容写到 city.xls 文件中,如下图所示:
第 0016 题: 纯文本文件 numbers.txt, 里面的内容(包括方括号)如下所示:
[[1, 82, 65535],[20, 90, 13],[26, 809, 1024]]
请将上述内容写到 numbers.xls 文件中,如下图所示:
思路:
嗯这三题看起来都是差不多的,都属于使用Python来把数据写入Excel文档的问题,解决的方法也是差不多,所以就写在一起了。Python拥有强大的标准库,,但是这个标准库好像并没有用于处理excel文件的库(什么鬼)。但肯定有强大的第三方库可以的,对不?
找了一下,发现有如下三个库:xlrd,xlwt和xlutils。其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改。 看样子好像xlutils是很强大的,不过这里我们用xlwt就可以解决问题啦。
数据是存在文件中的,所以首先要切换到文件所在目录,然后打开文件,读取出来后解析成json格式,再按照要求写进表格中就ok了。 发现了个问题,就是在json.load时得到的dict的元素位置和转化前可能会不一致,因此要使用OrderedDict
步骤:
安装xlwt库(如果没有): sudo pip install xlwt 切换目录,打开文件 读取文件内容 使用json解析 写入xls文件
代码:
0014.写excel文件1.py
osimport jsonimport xlwtfrom collections import OrderedDict# 存放文件的目录filepath = :os.chdir(filepath)# 读取文件内容with open(‘student.txt’) as f:content = f.read()# 转为json, 注意转化后的dict的元素位置和转化前可能会不一致,因此要使用OrderedDictd = json.loads(content, object_pairs_hook=OrderedDict)file = xlwt.Workbook()# 添加sheettable = file.add_sheet(‘test’)for row, i in enumerate(list(d)):table.write(row, 0, i)for col, j in enumerate(d[i]):table.write(row, col+1, j)file.save(‘student.xls’)if __name__ ==”__main__”:run()
0015.写excel文件2.py
osimport jsonimport xlwtfrom collections import OrderedDict# 存放文件的目录filepath = :os.chdir(filepath)# 读取文件内容with open(‘city.txt’) as f:content = f.read()# 转为json, 注意转化后的dict的元素位置和转化前可能会不一致,因此要使用OrderedDictd = json.loads(content, object_pairs_hook=OrderedDict)file = xlwt.Workbook()# 添加sheettable = file.add_sheet(‘test’)for row, i in enumerate(list(d)):table.write(row, 0, i)table.write(row, 1, d[i])file.save(‘city.xls’)if __name__ ==”__main__”:run()
0016.写excel文件3.py
osimport jsonimport xlwtfrom collections import OrderedDict# 存放文件的目录filepath = :os.chdir(filepath)# 读取文件内容with open(‘numbers.txt’) as f:content = f.read()# 转为json, 注意转化后的dict的元素位置和转化前可能会不一致,因此要使用OrderedDictd = json.loads(content, object_pairs_hook=OrderedDict)file = xlwt.Workbook()# 添加sheettable = file.add_sheet(‘test’)for row, i in enumerate(d):for col, j in enumerate(i):table.write(row, col, j)file.save(‘numbers.xls’)if __name__ ==”__main__”:run()
运行后生成的表格:
student.xls:
city.xls:
numbers.xls:
正如我总是意犹未尽的想起你。