欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 16:29:51
1.os模块操作 os.getcwd(): # 查看当前所在路径。 os.listdir(path): # 列举目录下的所有文件,返回的是列表类型。 os.path.abspath(path): # 返回path的绝对路径。 os.path.join(path1,path2,...): # 将pat ......

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')