python-文件,目录,file,xml,dir

来源:互联网 发布:金和网络股票 编辑:程序博客网 时间:2024/05/08 07:08
获取文件后缀名 (2009-7-26)
    f = 'test.py';
    ext = f[f.rindex('.'):]
    print ext


统计文件行数 (2009-7-26)
    thefilepath = 'D:\\www\\test\\test.html'
    countLine = 0
    for fileLine in open(thefilepath).xreadlines( ):
        countLine += 1

    print countLine


获取目录大小 (2009-7-26)

    import os
    from os.path import join, getsize

    def getdirsize(dir):  
        size = 0L
        for root, dirs, files in os.walk(dir):
            size += sum([getsize(join(root, name)) for name in files])
        return size

    if __name__ == '__main__':
        print 'Waiting...'
        filesize = getdirsize(r'D:\www\test\python')
        print 'There are %.3f' % (filesize/1024/1024), 'Mbytes in D:\\www\\test\\python'


os.path常见属性
    os.path.sep :路径分隔符 。以前老爱用'\\' ,后来用'/'。
    os.path.altsep:(根目录)
    os.path.curdir: 当前目录
    os.path.pardir: 父目录


判断是否是指定文件类型
    File.rsplit('.',1)[-1] == type
    当然也可以写成File.split('.')[-1:][0] == type


获取当前路径
    os.getcwd()

改变当前路径
    os.chdir(r"c:/")


修改文件名称
    os.rename("bbb.txt","ccc.txt")
    如果ccc.txt已经存在,则有异常抛出


文件夹改名
    os.rename("aaa","ccc")
    如果ccc已经存在,则有异常抛出


正则表达式获取文件列表
    import glob
    # 生成当前路径下所有文件的列表
    a = glob.glob('*')
    print a
    # 生成当前路径下所有扩展名为gif的文件列表。
    a = glob.glob('*.gif')


打印出xml文件的内容
    from xml.dom import minidom
    xmldoc = minidom.parse('binary.xml')
    print xmldoc
    print xmldoc.toxml()


从url解析xml
    import urllib
    usock = urllib.urlopen('http://www.blogjava.net/JAVA-HE/category/19871.html/rss')
    xmldoc = minidom.parse(usock)
    usock.close()
    print xmldoc.toxml()


把string解析为xml
    from xml.dom import minidom
    contents = "<grammar><ref id='bit'><p>0</p><p>1</p></ref></grammar>"
    xmldoc = minidom.parseString(contents)
    print xmldoc.toxml()
    <?xml version="1.0" ?><grammar><ref id="bit"><p>0</p><p>1</p></ref></grammar>


两种遍历目录对比
    >>> files = os.listdir(".")
    >>> for f in files:
    print "." + os.sep + f

    上面这种已经用过了。下面是一种递归遍历的:

    for root, dirs, files in os.walk("."):
    for name in files:
    print os.path.join(root,name)


f=open('/tmp/workfile', 'w')
f.read()
f.readline()
f.write('This is a test\n')
f.seek(5) # 从文件头前进5 个字节,到达第6 个字符
f.close()


pickle 模块
    可以把几乎任何Python对象转换为字符串表示,这个过程叫做腌制,从对象的字符串表示恢复对象叫做恢复。在腌制和反腌制之间,对象的字符串表示可以保存在文件或数据中,甚至于通过网络连接传送到远程计算机上

    pickle.dump(x, f)
    x = pickle.load(f)