python 3.x 学习笔记8 (os模块及xml修改)

1.os模块操作

os.getcwd():                                       # 查看当前所在路径。

os.listdir(path):                                       # 列举目录下的所有文件,返回的是列表类型。

os.path.abspath(path):                          # 返回path的绝对路径。

os.path.join(path1,path2,...):                   # 将path进行组合,若其中有绝对路径,则之前的path将被删除。

os.path.dirname(path):                        #   返回path中的文件夹部分,结果不包含'\'

os.path.basename(path):                     # 返回path中的文件名。

os.path.getmtime(path):                      #  文件或文件夹的最后修改时间,从新纪元到访问时的秒数。

os.path.getatime(path):                      #  文件或文件夹的最后访问时间,从新纪元到访问时的秒数。

os.path.getctime(path):                       #  文件或文件夹的创建时间,从新纪元到访问时的秒数。

os.path.getsize(path):                         #  文件或文件夹的大小,若是文件夹返回0

os.path.exists(path):                           #  文件或文件夹是否存在,返回True 或 False。

 

2.xml的使用

 xml建立

from xml.etree import ElementTree as ET
def build_sitemap():
    urlset = ET.Element("urlset")       # ET.Element创建一个根节点,标签为urlset
    url = ET.SubElement(urlset,"url")   # ET.SubElement在根节点urlset下建立子节点
    loc = ET.SubElement(url,"loc",attrib={"name":"百度"})         #attrib为创建属性
    loc.text = "http://www/baidu.com"                             #loc.test 为写入内容
    time = ET.SubElement(url,"time")
    time.text = "2018-1-30"
    change = ET.SubElement(url,"change")
    change.text = "daily"
    priority = ET.SubElement(url,"priority")
    priority.text = "1.0"
    tree = ET.ElementTree(urlset)
    tree.write("set.xml",'utf-8')         #写入时加上‘utf-8’可以转译中文,不会有乱码
if __name__ == '__main__':
    build_sitemap()

 生成的xml

<urlset>
    <url>
        <loc name="百度">http://www/baidu.com</loc>
        <time>2018-1-30</time>
        <change>daily</change>
        <priority>1.0</priority>
    </url>
</urlset>

 下面是要修改的文件

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

修改程序

import xml.etree.ElementTree as ET

tree = ET.parse('xmltest.xml')
root = tree.getroot()
#修改
for node in root.iter('year'):
    new_year = int(node.text) + 1
    node.text = str(new_year)
    node.set('updated_by','hsj')

tree.write('xmltest2.xml')


#删除

for country in root.findall('country'):
    rank = int(country.find('rank').text)
    if rank > 50:
        root.remove(country)

tree.write('xmltest3.xml')

 

posted @ 2018-01-30 22:58  hsj_jingyu  阅读(602)  评论(0编辑  收藏  举报