Python練習冊,每天乙個小程式(十六)

2021-10-01 04:57:44 字數 2058 閱讀 3470

第 0017 題:將 第 0014 題中的 student.xls 檔案中的內容寫到 student.xml 檔案中,如

下所示:

<?xml version="1.0" encoding="utf-8"?>

第 0018 題:將 第 0015 題中的 city.xls 檔案中的內容寫到 city.xml 檔案中,如下 所示:

<?xmlversion="1.0" encoding="utf-8"?>

第 0019 題:將 第 0016 題中的 numbers.xls 檔案中的內容寫到 numbers.xml 檔案中,如下

所示:

<?xml version="1.0" encoding="utf-8"?>

[ [1, 82, 65535],

[20, 90, 13],

[26, 809, 1024]

]

#encoding:utf-8

import xlrd

from lxml import etree

import json

# 讀取excel檔案中的內容,返回資料

def read_datas(filename,sheet_name,is_dict=false):

datas=

workbook = xlrd.open_workbook(filename,encoding_override="utf8")

worksheet = workbook.sheet_by_name(sheet_name)

for i in range(worksheet.nrows):

data=

for j in range(worksheet.ncols):

if is_dict:

dict_data = {}

for value in datas:

k = value[0]

value.remove(k)

dict_data[k] = value

datas = dict_data

return datas

# 將資料轉換為json格式寫入到xml中

def write_to_xml(filename,data_node,remark,datas):

# 建立根節點

root = etree.element("root")

# 建立子節點

datanode = etree.subelement(root,data_node)

# 新增子節點的說明資訊

# 設定子節點的內容

datanode.text = json.dumps(datas,ensure_ascii=false)

# 將根節點放入xml節點中

data_xml = etree.elementtree(root)

data_xml.write(filename, xml_declaration=true, encoding='utf-8')

if __name__ == '__main__':

# student.xls

datas = read_datas("student.xls","student",is_dict=true)

write_to_xml("student.xml","student","學生資訊",datas)

# city.xls

datas = read_datas("city.xls", "city", is_dict=true)

write_to_xml("city.xml", "city", "城市資訊", datas)

# number.xls

datas = read_datas("number.xls", "number", is_dict=false)

write_to_xml("number.xml", "number", "數字資訊", datas)

Python練習冊,每天乙個小程式 第0004題

沒有學也還沒準備學資料庫操作,所以先把2 3題跳啦,來做第4題 任乙個英文的純文字檔案,統計其中的單詞出現的個數。這裡要用到的知識點包括開啟檔案 逐行讀取檔案內容 統計頻數 在此用到字典 展示 在此用簡單pandas知識 匯入pandas模組和series類 import pandas as pd ...

每天乙個python小技巧

使用場景 如果需要多次重複的產出檔案,可以通過如下的方式來根據時間戳建立新的資料夾,用來區分儲存檔案。def getcurrenttime dirpath 根據時間戳,建立指定輸出檔案 param dirpath return if os.path.exists dirpath time.strft...

Python練習題,每天乙個小程式

coding utf 8 import random import string field string.ascii letters string.digits 產生0 9和26個字母的字串 def gen code m code join random.sample field,m 產生長度為2...