当前位置:  编程技术>python

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

    来源: 互联网  发布时间:2014-09-04

    本文导语:  Linux服务器有CentOS、Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在运行时修改参数即可。 Python操作文件和文件夹使用的是os库,...

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:\apache2htdocs,然后执行c:python25python.exe filesearch.py(这里假设python的安装目录是c:python25)


    
 
 

您可能感兴趣的文章:

  • python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例
  • Python字符遍历的艺术
  • python遍历文件夹并删除特定格式文件的示例
  • python中使用enumerate函数遍历元素实例
  • python 字典(dict)遍历的四种方法性能测试报告
  • python使用os模块的os.walk遍历文件夹示例
  • Python中文件遍历的两种方法
  • Python中使用item()方法遍历字典的例子
  • python中遍历文件的3个方法
  • python实现dict版图遍历示例
  • python二叉树遍历的实现方法
  • Python enumerate遍历数组示例应用
  • python数据结构之二叉树的遍历实例
  • python两种遍历字典(dict)的方法比较
  • Python引用(import)文件夹下的py文件的方法
  • python使用循环实现批量创建文件夹示例
  • python 查找文件夹下所有文件 实现代码
  • windows系统中python使用rar命令压缩多个文件夹示例
  • Python写的创建文件夹自定义函数mkdir()
  • python2.7删除文件夹和删除文件代码实例
  • python抓取网页图片并放到指定文件夹
  • 通过python下载FTP上的文件夹的实现代码
  • Python文件夹与文件的操作实现代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python读取csv文件示例(python操作csv)
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • python基础教程之python消息摘要算法使用示例
  • Python获取网页编码的方法及示例代码
  • 新手该如何学python怎么学好python? iis7站长之家
  • Python异常模块traceback用法举例
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python之平台独立的调试工具winpdb介绍
  • python学习手册中的python多态示例代码
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 测试Python内部类型及type和isinstance用法区别
  • python版本的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3