zoukankan      html  css  js  c++  java
  • Python操作文件夹

    python对文件夹的操作汇总,方便查阅使用

    1、遍历指定目录,显示目录下的所有文件名

    #-*- coding:utf-8 -*-
    import os
    def fileInFolder(filepath):
        pathDir =  os.listdir(filepath)  # 获取filepath文件夹下的所有的文件
        files = []
        for allDir in pathDir:
            child = os.path.join('%s\%s' % (filepath, allDir))
            files.append(child.decode('gbk'))  # .decode('gbk')是解决中文显示乱码问题
            # print child
            # if os.path.isdir(child):
            #     print child
            #     simplepath = os.path.split(child)
            #     print simplepath
        return files
    
    filepath = "C:\files"
    print  fileInFolder(filepath)
    
    输出:
    [u'C:\files\a.txt', u'C:\files\b.txt', u'C:\files\c']
    

      

    2、遍历文件夹及其子文件夹的所有文件,获取文件的列表

    #-*- coding:utf-8 -*-
    import os
    def getfilelist(filepath):
        filelist =  os.listdir(filepath)  # 获取filepath文件夹下的所有的文件
        files = []
        for i in range(len(filelist)):
            child = os.path.join('%s\%s' % (filepath, filelist[i]))
            if os.path.isdir(child):
                files.extend(getfilelist(child))
            else:
                files.append(child)
        return files
    filepath = "C:\files"
    print getfilelist(filepath)
    
    输出:
    ['C:\files\a.txt', 'C:\files\b.txt', 'C:\files\c\d.txt', 'C:\files\c\e.txt', 'C:\files\c\f\g.txt']
    

      

    3、Python 遍历子文件和所有子文件夹 输出字符串

     参考: http://blog.csdn.net/Qian_F/article/details/9896283

    #-*- coding:utf-8 -*-
    import os
    def getfilelist(filepath, tabnum=1):
        simplepath = os.path.split(filepath)[1]
        returnstr = simplepath+"目录<>"+"
    "
        returndirstr = ""
        returnfilestr = ""
        filelist = os.listdir(filepath)
        for num in range(len(filelist)):
            filename=filelist[num]
            if os.path.isdir(filepath+"/"+filename):
                returndirstr += "	"*tabnum+getfilelist(filepath+"/"+filename, tabnum+1)
            else:
                returnfilestr += "	"*tabnum+filename+"
    "
        returnstr += returnfilestr+returndirstr
        return returnstr+"	"*tabnum+"</>
    "
    
    filepath = "C:\files"
    f = open("test.xml","w+")
    f.writelines(getfilelist(filepath))
    f.close()
    

      

    4、对文件批量更名

    #-*- coding:utf-8 -*-
    import os
    def filesRename(filepath):
        filelist =  os.listdir(filepath)  # 获取filepath文件夹下的所有的文件
        files = []
        for i in range(len(filelist)):
            child = os.path.join('%s\%s' % (filepath, filelist[i]))
            if os.path.isdir(child):
                continue
            else:
                newName = os.path.join('%s\%s' % (filepath, str(i) + "_" + filelist[i]))
                print newName
                os.rename(child, newName)
    filepath = "C:\files2"
    filesRename(filepath)
    
  • 相关阅读:
    【bzoj3774】最优选择 网络流最小割
    【bzoj3697】采药人的路径 树的点分治
    【bzoj3576】[Hnoi2014]江南乐 博弈论+SG定理+数学
    【bzoj3451】Tyvj1953 Normal 期望+树的点分治+FFT
    【bzoj2906】颜色 分块
    【bzoj5028】小Z的加油店 扩展裴蜀定理+差分+线段树
    【bzoj2257】[Jsoi2009]瓶子和燃料 扩展裴蜀定理+STL-map
    【bzoj4542】[Hnoi2016]大数 莫队算法
    【bzoj4182】Shopping 树的点分治+dfs序+背包dp
    【bzoj2560】串珠子 状压dp+容斥原理
  • 原文地址:https://www.cnblogs.com/sixu/p/8017100.html
Copyright © 2011-2022 走看看