python实例31[列出目录下所有的文件到txt]

本文介绍了两种利用Python os模块来遍历指定目录及其子目录下特定类型文件的方法。一种方式是通过os.listdir结合递归实现,另一种则是利用os.walk进行更简洁的递归处理。代码示例展示了如何将找到的文件名写入到另一个文本文件中。

 

代码: (使用os.listdir) 

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

 

 

代码:(使用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()

 

 

 

欢迎大家改进共享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值