python将目录下所有文件名写入txt文件

Posted yinxingtianxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python将目录下所有文件名写入txt文件相关的知识,希望对你有一定的参考价值。

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)):
                    (filename,extension) = os.path.splitext(name)
                    file.write(filename + " " + "depth/" + name + "\\n")
                    break
def Test():
  dir="/home/david/workspace/bags/depth"
  outfile="/home/david/workspace/bags/depth.txt"
  wildcard = ".png .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()

另外还可以利用:(使用os.walk) walk递归地对目录及子目录处理,每次返回的三项分别为:当前递归的目录,当前递归的目录下的所有子目录,当前递归的目录下的所有文件。

代码如下:

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()

以上是关于python将目录下所有文件名写入txt文件的主要内容,如果未能解决你的问题,请参考以下文章

Python:在 txt 文件中写入附加文本

java 将不同文件下的相同多级目录下文件内容,合并到一个新的文件夹中,建立对应多级目录

获取当前目录下所有文件名函数 c语言

Python os模块实例之遍历目录及子目录指定扩展名的文件

如何在 Python 3 中写入 .txt 文件

python 如何把多个文件内容合并到以一个文件