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多进程操作实例
Nov 21 Python
收集的几个Python小技巧分享
Nov 22 Python
浅析使用Python操作文件
Jul 31 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
python中的变量如何开辟内存
Jun 26 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
Jun 23 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
Python开发五子棋小游戏
May 02 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生成短网址的3种方法代码实例
2014/07/08 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
python optparse模块使用实例
2015/04/09 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python语言的变量认识及操作方法
2018/02/11 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
城市精细化管理实施方案
2014/03/04 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
初中英语演讲稿
2014/04/29 职场文书
入党函调证明材料
2014/12/24 职场文书
民政局未婚证明
2015/06/15 职场文书
运输公司工作总结
2015/08/11 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书