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')
上一篇: Demo—标题左右两侧的对等横线