Python中获取当前目录和子目录下所有文件或指定文件的方法

  1. 方法一:os.listdir()
  2. 方法二:os.walk()
  3. 参考:
  4. THE END!

方法一:os.listdir()

(1)获取当前目录及子目录下所有文件路径列表:getallfiles.py

import os
import sys

allfile = []
def get_all_file(rawdir):
      allfilelist=os.listdir(rawdir)
      for f in allfilelist:
            filepath=os.path.join(rawdir,f)
            if os.path.isdir(filepath):
                  get_all_file(filepath)
            allfile.append(filepath)
      return allfile

if __name__=='__main__':
      if(len(sys.argv) < 2):
            print("Usage: getallfiles.py rawdir")
            exit()
      rawdir = sys.argv[1]
      #current = os.getcwd()
      allfiles = get_all_file(rawdir)
      print allfiles

在命令行中输入:python getallfiles.py E:\

就会列出E盘下面所有目录(包括子目录)下的所有文件。

(2)获取当前目录及子目录下指定格式文件路径:get_format_files.py

# _*_coding=UTF-8_*_

import os
import re
import sys

##获取指定目录下指定格式的所有文件路径列表
def get_format_file(rawdir):
    isfile = 0
    if os.path.isdir(rawdir):
        allfiles = os.listdir(rawdir)
        files = [rawdir+"/"+f for f in allfiles if re.search('txt$',f)]
    elif os.path.isfile(rawdir):
        iffile = 1
        files = [rawdir]
    else:
        files = []
        print("ERROR: "+ rawdir+" is not a dir or file!")
    return [files, isfile]


#获取文件名称
def get_file_name(fullfilename):
    tmp = fullfilename.strip() #去除前后不必要的空格
    name = os.path.split(tmp)[-1] # 提取文件名,不包含路径
    return os.path.splitext(name)[0] #提取文件名,不包含后缀

在命令行中输入:python get_format_files.py E:\

就会列出E盘下面所有目录(包括子目录)下的指定格式的所有文件。

方法二:os.walk()

(1)获取当前目录及子目录下所有文件路径列表:getallfiles_v2.py

import os
import sys

allfiles = []
def get_all_file(rawdir):
      for root,dirs,files in os.walk(rawdir):
            for f in files:
                  #if(re.search('mp4$'),f):
                  allfiles.append(os.path.join(root,f))
            for dirname in dirs:
                  get_all_file(os.path.join(root,dirname))
      return allfiles

if __name__=='__main__':
      if(len(sys.argv) < 2):
            print("Usage: getallfiles.py rawdir")
            exit()
      rawdir = sys.argv[1]
      #current = os.getcwd()
      allfiles = get_all_file(rawdir)
      print allfiles

在命令行中输入:python getallfiles_v2.py E:\

就会列出E盘下面所有目录(包括子目录)下的所有文件。

参考:

https://www.cnblogs.com/sudawei/archive/2013/09/29/3346055.html

https://blog.csdn.net/KGzhang/article/details/72964785

THE END!


本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com

文章标题:Python中获取当前目录和子目录下所有文件或指定文件的方法

字数:508

本文作者:Soaring Lee

发布时间:2018-05-08, 15:13:47

最后更新:2021-06-14, 12:13:44

原始链接:https://soaringleefighting.github.io/2018/05/08/【Python系列】Python中获取当前目录和子目录下所有文件或指定文件的方法/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

相册