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当中的数据类型和变量
Apr 25 Python
python删除列表中重复记录的方法
Apr 28 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python实现Linux中的du命令
Jun 12 Python
python3设计模式之简单工厂模式
Oct 17 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
Python读取xlsx文件的实现方法
Jul 04 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
详解Django admin高级用法
Nov 06 Python
python自动点赞功能的实现思路
Feb 26 Python
Python代码实现双链表
May 25 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
在PHP的图形函数中显示汉字
2006/10/09 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
php中in_array函数用法分析
2014/11/15 PHP
php实现倒计时效果
2015/12/19 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
纯JS实现轮播图
2017/02/22 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
Python中统计函数运行耗时的方法
2015/05/05 Python
python动态网页批量爬取
2016/02/14 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
python自动12306抢票软件实现代码
2018/02/24 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
python的数学算法函数及公式用法
2020/11/18 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书