python目录操作之python遍历文件夹后将结果存储为xml


Posted in Python onJanuary 27, 2014

Linux服务器有CentOS、Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在运行时修改参数即可。

Python操作文件和文件夹使用的是os库,下面的代码中主要用到了几个函数:

os.listdir:列出目录下的文件和文件夹
os.path.join:拼接得到一个文件/文件夹的全路径
os.path.isfile:判断是否是文件
os.path.splitext:从名称中取出一个子部分

下面是目录操作的代码

def search(folder, filter, allfile):
    folders = os.listdir(folder)
    for name in folders:
        curname = os.path.join(folder, name)
        isfile = os.path.isfile(curname)
        if isfile:
            ext = os.path.splitext(curname)[1]
            count = filter.count(ext)
            if count>0:
                cur = myfile()
                cur.name = curname
                allfile.append(cur)
        else:
            search(curname, filter, allfile)
    return allfile

在返回文件的各种信息时,使用自定义类allfile来保存文件的信息,在程序中只用到了文件的全路径,如果需要同时记录文件的大小、时间、类型等信息,可以仿照代码进行扩充。

class myfile:
    def __init__(self):
        self.name = ""

 得到存储文件信息的数组后,还可以将其另存成xml格式,下面是代码,在使用时,需要从Document中导入xml.dom.minidom

下面是保存为xml的代码

def generate(allfile, xml):
    doc = Document()
    root = doc.createElement("root")
    doc.appendChild(root)
    for myfile in allfile:
        file = doc.createElement("file")
        root.appendChild(file)
        name = doc.createElement("name")
        file.appendChild(name)
        namevalue = doc.createTextNode(myfile.name)
        name.appendChild(namevalue)
    print doc.toprettyxml(indent="")
    f = open(xml, 'a+')
    f.write(doc.toprettyxml(indent=""))
    f.close()

执行的代码如下
if __name__ == '__main__':
    folder = "/usr/local/apache/htdocs"
    filter = [".html",".htm",".php"]
    allfile = []
    allfile = search(folder, filter, allfile)
    len = len(allfile)
    print "found: " + str(len) + " files"
    xml = "folder.xml"
    generate(allfile, xml)

在Linux命令行状态下,执行Python filesearch.py,便可以生成名为folder.xml的文件。

如果要在Windows中运行该程序,需要把folder变量改成Windows下的格式,例如c:\\apache2\htdocs,然后执行c:\python25\python.exe filesearch.py(这里假设python的安装目录是c:\python25)

Python 相关文章推荐
Python中__name__的使用实例
Apr 14 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
python树莓派红外反射传感器
Jan 21 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
numpy:找到指定元素的索引示例
Nov 26 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
Django程序的优化技巧
Apr 29 Python
paramiko模块安装和使用(远程登录服务器)
Jan 27 #Python
python使用paramiko模块实现ssh远程登陆上传文件并执行
Jan 27 #Python
python list使用示例 list中找连续的数字
Jan 27 #Python
Python批量修改文件后缀的方法
Jan 26 #Python
使用cx_freeze把python打包exe示例
Jan 24 #Python
Python的函数嵌套的使用方法
Jan 24 #Python
下载安装setuptool和pip linux安装pip    
Jan 24 #Python
You might like
第一节--面向对象编程
2006/11/16 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
php实现等比例压缩图片
2018/07/26 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
JS Input里添加小图标的两种方法
2017/11/11 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python实现最长公共子序列
2018/05/22 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
Django 限制访问频率的思路详解
2019/12/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
实习医生自我评价
2013/09/22 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
三八节标语
2014/06/27 职场文书
关于诚信的活动方案
2014/08/18 职场文书
2014年财务经理工作总结
2014/12/08 职场文书