㈠ python獲取指定目錄下所有文件名列表的方法
本文實例講述了python獲取指定目錄下所有文件名列表的方法。分享給大家供嫌返廳大家參考。具體實現方法如下:世攔
這里python代碼實現獲取文件名列表的功能,可以指定文件中包含的字元,方便提取特定類型的文件名列表:
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: utf-8 -*-
#~ #------------------------------------------------------------------
#~ mole:wlab
#~ Filename:wgetfilelist.py
#~ Function :
#~ def IsSubString(SubStrList,Str)
#~ def GetFileList(FindPath,FlagStr=[]):
#~ 功能:讀取芹隱指定目錄下特定類型的文件名列表
#~ Data: 2013-08-08,星期四
#~ Author:吳徐平
#~ Email:[email protected]
#~ #------------------------------------------------------------------
#~ #------------------------------------------------------------------
def IsSubString(SubStrList,Str):
#判斷字元串Str是否包含序列SubStrList中的每一個子字元串
#SubStrList=[F,EMS,txt]
#Str=F06925EMS91.txt
#IsSubString(SubStrList,Str)#return True (or False)
flag=True
for substr in SubStrList:
if not(substr in Str):
flag=False
return flag
#~ #----------------------------------------------------------------------
def GetFileList(FindPath,FlagStr=[]):
#獲取目錄中指定的文件名
#FlagStr=[F,EMS,txt] #要求文件名稱中包含這些字元
#FileList=GetFileList(FindPath,FlagStr) #
import os
FileList=[]
FileNames=os.listdir(FindPath)
if (len(FileNames)0):
for fn in FileNames:
if (len(FlagStr)0):
#返回指定類型的文件名
if (IsSubString(FlagStr,fn)):
fullfilename=os.path.join(FindPath,fn)
FileList.append(fullfilename)
else:
#默認直接返回所有文件名
fullfilename=os.path.join(FindPath,fn)
FileList.append(fullfilename)
#對文件名排序
if (len(FileList)0):
FileList.sort()
return FileList
可以使用pip在線安裝wlab
?
1
pip install wlab
還是給個圖吧:
希望本文所述對大家的Python程序設計有所幫助。
㈡ 如何用python統計一個路徑下的文件總數
剛好剛才寫了一個
defget_dir_info(dir_path,deep=0,info=None):
ifinfoisNone:
info={'deep':0,'deep_dir':'','file_num':0,'dir_num':0}
ifdeep>info['deep']:
info['deep']=deep
info['deep_dir']=dir_path
file_list=os.listdir(dir_path)
forfileinfile_list:
file_path=os.path.join(dir_path,file)
ifos.path.isdir(file_path):
info['dir_num']+=1
get_dir_info(file_path,deep=deep+1,info=info)
else:
info['file_num']+=1
ifdeep==0:
returninfo
if__name__=='__main__':
dir_path="D:\Tools\WebStorm2016\plugins"
s=time.time()
d=get_dir_info(dir_path)
print("{}".format(time.time()-s))
print(d)
#所有的深度是基於給出的文件夾統計的
#deep_dir比較雞肋,因為如果有多個相同深度的文件夾就會替換掉只剩一個
#可以自行去掉這個功能
#deep:最深的層數
#deep_dir:最深的路徑名稱
#dir_num:文件夾數量
#file_num:文件數量
'''
0.21001195907592773
{'deep':12,'deep_dir':'D:\Tools\WebStorm2016\plugins\spy-js\server\node_moles\istanbul\node_moles\resolve\test\resolver\biz\node_moles\garply\lib','file_num':6325,'dir_num':1113}
'''
㈢ 自學Python:查看文件夾及子目錄所有文件路徑
使用路徑對象glob()函數和rglob()函數,可以查看指定路徑下的文件和子文件夾,兩者的區別在於,glob()函數只進行一級查找,而rglob()函數會進行多級查找。
from pathlib import Path
p = Path('d:\\文件夾\\')
r = p.glob('*')
for i in r:
print(i) #顯示glob()函數的結果
print('-' * 25) #這里是分割線
r = p.rglob('*')
for i in r:
print(i)#顯示rglob()函數的結果
查看對應結果如下:
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夾
-------------------------
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夾
d:\11\文件夾\文檔.txt
________________END______________
㈣ Python中如何遍歷指定目錄下的所有文件
例如:在C:\TDDOWNLOAD目錄下有a.txt、b.txt兩個文件,另有\sub1子文件夾,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt兩個文件。
1. os.walk
os.walk()返回一個三元素的tuple:當前路徑、子文件夾名稱、文件列表。
>>> import os
>>> def fun( path ):
... for root, dirs, files in os.walk( path ):
... for fn in files:
... print root, fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD a.txt
C:\TDDOWNLOAD b.txt
C:\TDDOWNLOAD\sub1 c.txt
C:\TDDOWNLOAD\sub1 d.txt
>>>
2. glob.glob
glob.glob()只接受一個參數,這個參數既代有路徑,又代有匹配模式,返回值為一個列表。注意,glob.glob()無法直接穿透子文件夾,需要自己處理:
>>> def fun( path ):
... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件
... if os.path.isdir( fn ): # 如果結果為文件夾
... fun( fn ) # 遞歸
... else:
... print fn
...
>>> fun( r'C:\TDDOWNLOAD' )
C:\TDDOWNLOAD\a.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
>>>
'*'為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來,以便遞歸深入,探查下一層的文件。
㈤ python怎麼查文件夾下所有文件
import os
import os.path
rootdir = 「d:\data」 # 指明被遍歷的文件夾
for parent,dirnames,filenames in os.walk(rootdir): #三個參數:分別返回1.父目錄 2.所有文件夾名字(不含路徑) 3.所有文件名字
for dirname in dirnames: #輸出文件夾信息
print "parent is:" + parent
print "dirname is:" + dirname
for filename in filenames: #輸出文件信息
print "parent is:" + parent
print "filename is:" + filename
print "the full name of the file is:" + os.path.join(parent,filename) #輸出文件路徑信息
㈥ 如何用python統計一個路徑下的文件總數
import os
count = 0
path = r'C:\Users\xxxx\Desktop\top'
for root, dirs, files in os.walk(path):
#print files
fileLength = len(files)
if fileLength != 0:
count = count + fileLength
print "The number of files under <%s> is: %d" %(path,count)
上面是程序是 統計 C:\Users\xxxx\Desktop\top 目錄下文件的個數 你使用的時候 將 path 替換為你想要的就行了 注意 path 等號 後面的 『r』
㈦ python怎麼獲取路徑下的所有文件夾名字
import os
os.chdir("D:\\python") #設置需要查看的目錄
a = [x for x in os.listdir() if os.path.isdir(x)]
列表a裡面就是當前目錄下的文件夾名字
㈧ 如何用python統計一個路徑下的文件總數
統計當前目錄下總共多少文件和文件夾,命令 : find . |wc -l 得出來的數字-1就是了 如果只是統計當前目錄下的文件,不統計子文件夾下的文件,那命令是 ls -l |wc -l 得出來的數字-1
㈨ 用python把文件夾下的所有文件包括文件夾裡面的文件都拷貝到同一個目錄下
defchange(path,path1):
forfinos.listdir(path):
ifos.path.isfile(path+os.path.sep+f):
a,b=os.path.splitext(f)
ifb!='.py':
shutil.(path+os.sep+f,path1)
elifos.path.isdir(path+os.path.sep+f):
change(path+os.sep+f,path1)
if__name__=='__main__':
path='D:\workspace\python'
path1='D:\workspace\python\filepath'
change(path,path1)
你好,我把change稍微改了一下,看看行不