python目录操作读取目录中文件的文件名

发布时间:2019-08-22编辑:脚本学堂
有关python读取目录所有文件的文件名,保存到txt文件的方法,用到了python os.listdir与os.walk模块,一起来了解下。

例1,python使用os.listdir模块读取目录中所有文件名。
 

复制代码 代码示例:
#!/usr/bin/env python
#
import os
def ListFilesToTxt(dir,file,wildcard,recursion):
    exts = wildcard.split(" ")
    files = os.listdir(dir)
    for name in files:
        fullname=os.path.join(dir,name)
        if(os.path.isdir(fullname) & recursion):
            ListFilesToTxt(fullname,file,wildcard,recursion)
        else:
            for ext in exts:
                if(name.endswith(ext)):
                    file.write(name + "n")
                    break
def Test():
  dir="J:1"
  outfile="binaries.txt"
  wildcard = ".txt .exe .dll .lib"
 
  file = open(outfile,"w")
  if not file:
    print ("cannot open the file %s for writing" % outfile)
  ListFilesToTxt(dir,file,wildcard, 1)
 
  file.close()
Test()

例2,使用os.walk模块
walk递归地对目录及子目录处理,每次返回的三项分别为:当前递归的目录,当前递归的目录下的所有子目录,当前递归的目录下的所有文件。
 

复制代码 代码示例:
#!/usr/bin/env python
#
import os
def ListFilesToTxt(dir,file,wildcard,recursion):
    exts = wildcard.split(" ")
    for root, subdirs, files in os.walk(dir):
        for name in files:
            for ext in exts:
                if(name.endswith(ext)):
                    file.write(name + "n")
                    break
        if(not recursion):
            break
def Test():
  dir="J:1"
  outfile="binaries.txt"
  wildcard = ".txt .exe .dll .lib"
 
  file = open(outfile,"w")
  if not file:
    print ("cannot open the file %s for writing" % outfile)
  ListFilesToTxt(dir,file,wildcard, 0)
 
  file.close()
Test()