美文网首页
Python文件以及文件夹相关操作

Python文件以及文件夹相关操作

作者: 学而时习之_不亦说乎 | 来源:发表于2017-04-18 09:04 被阅读87次

    获取目录下所有后缀名称

    import os
    def GetSuffix(path):
        suffix = []
        for root, dirs, files in os.walk(path):
            for file_name in files:
                filename, file_extension = os.path.splitext(file_name)
                if file_extension not in suffix:
                    suffix.append(file_extension)
                    #print file_extension
        return suffix        
    

    上面的这个函数用到了os.walk这个函数,它主要功能是遍历当前目录,并且返回三个元组,(dirpath, dirnames, filenames)dirpath 是一个字符串,指明了文件夹的路径。dirnames 是一个列表,里面存储的是dirpath文件夹下的子文件夹。filenames 也是一个列表,存储的则是dirpath文件夹下的所有文件。上面的函数就是直接使用了filenames这个元组。

    删除特定后缀的文件

    def RemoveSuffixFile(path,suffix):
        for root, dirs, files in os.walk(path):
            for file_name in files:
                filename, file_extension = os.path.splitext(file_name)
                if file_extension in suffix:
                    os.remove(os.path.join(root,file_name))
                    print (os.path.join(root,file_name)+' is removed')
    

    获取目录下所有子文件夹或者文件名

    from os import listdir
    from os.path import isfile, isdir, join
    #定义一个函数来返回FilePath文件加下所有的文件
    def ListFiles(FilePath):
        #listdir会返回文件夹下所有的文件,包括子文件夹,类似与matlab中的dir函数。
        #isfile检查其为文件还是文件夹
        onlyfiles = [ f for f in listdir(FilePath) if isfile(join(FilePath,f)) ]
        return onlyfiles;
    
    #同理,可以返回FilePath目录下所有的文件夹
    def ListDir(FilePath):
        #listdir会返回文件夹下所有的文件,包括子文件夹,类似与matlab中的dir函数。
        #isfile检查其为文件还是文件夹
        onlyfiles = [ f for f in listdir(FilePath) if isdir(join(FilePath,f)) ]
        return onlyfiles;
    

    按序号重命名(格式转换)文件夹下图像文件,并统一格式

    def FormatFile(path,suffix,tosuffix):
        for root, dirs, files in os.walk(path):
            for i, file_name in enumerate(files):
                filename, file_extension = os.path.splitext(file_name)
                if file_extension in suffix and file_extension != tosuffix:
                    print("convert "+file_name)
                    img = Image.open(os.path.join(root,file_name)).convert('RGB')
                    img.save(os.path.join(root,(str(i)+tosuffix)))
                    os.remove(os.path.join(root,file_name))
                elif file_extension in suffix and file_extension == tosuffix:
                    os.rename(os.path.join(root,file_name),os.path.join(root,(str(i)+tosuffix)))
                else:
                    print('skip file');
    

    相关文章

      网友评论

          本文标题:Python文件以及文件夹相关操作

          本文链接:https://www.haomeiwen.com/subject/pxffzttx.html