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中怎樣將文件拷貝到指定的目錄下
代碼:
import os
import shutil
from shutil import Error
from shutil import stat
from shutil import 2
src = "" #需要復制的文件目錄
dst = "" #目標目錄
def jiecptree(src, dst, symlinks=False, ignore=None): #聲明函數 ree( 要復制的目錄,目標目錄,復制符號連接內容到新目錄,沒有要忽略文件)
names = os.listdir(src) #獲得要復制目錄的文件名列表,賦給變數 names
if ignore is not None: #如果 ignore 不是None值
ignored_names = ignore(src, names) # src目錄中要忽略文件的名字賦給 ignored_names
else: # 否則
ignored_names = set() #ignore_name 被 不重復空元素集 賦值
if os.path.isdir(dst):
pass
else:
os.makedirs(dst)
# print"dstfirst:"+dst
errors = [] #聲明 errors列
for name in names: #將names里的元素循環復制給name
if name in ignored_names: #如果name在要求被忽略的列里出現
continue #繼續for循環(跳回for,從新循環下個元素)
srcname = os.path.join(src, name) #將路徑名(src)添加到文名(name)之前然後賦值給 srcname
dstname = os.path.join(dst, name) #將路徑名(dst)添加到文名(name)之前然後賦值給 dstcname
from shutil import Error
# print "name:"+name
# print "src:"+src
# print "dst:"+dst
try: #嘗試
if os.path.islink(srcname):
continue
elif os.path.isdir(srcname): #如果srcname路徑是存在
jiecptree(srcname, dstname, symlinks, ignore)
elif os.path.isdir(dstname):
os.remove(dstname)
2(srcname, dstname)
else: # 否則
2(srcname, dstname) # 復制srcname到dstname
# print "srcname:"+srcname
# print "dstname:"+dstname
# XXX What about devices, sockets etc.? #怎樣裝置
except (IOError, os.error), why: #除(IOError[與文件有關的異常],操作系統異常)外,返回原因
errors.append((srcname, dstname, str(why))) # 向errors列里添加,(要復制的目錄,目標目錄,錯誤原因)
# catch the Error from the recursive jiecptree so that we can 從遞歸復制中捕捉這個錯誤,以便於我們能繼續復制其他文件
# continue with other files
except Error, err: #除錯誤外,返回錯誤:
errors.extend(err.args[0]) #擴展 errors 列,添加(err.args[0] 元素)
try: #嘗試
stat(src, dst) # 從src復制許可權位,上次訪問時間,最後修改時間 到 dst,
except WindowsError: # 除 Windows錯誤 外:
# can't file access times on Windows 在Windows上無法復制文件訪問時間
pass # 通過(不作任何處理)
except OSError, why: # 除 操作系統錯誤 外,返回原因:
errors.extend((src, dst, str(why))) #擴展 errors 列,添加(要復制的目錄,目標目錄,錯誤原因)
if errors: # 如果錯誤
raise Error(errors) # 提示錯誤
更多相關內容可參考資料http://www.viiboo.cn
Ⅲ 如何獲取目錄下的文件數(一行Python)
如果想把該目錄下所有的文件都統計出來,包括子目錄、子目錄的子目錄。。。
可以使用os.walk來找出目錄下所有的文件
importos
printsum([len(x)for_,_,xinos.walk(os.path.dirname("test"))])
#test是目錄名
os.walk會遞歸遍歷指定目錄下的文件,返回值分別為當前文件夾完整路徑,當前文件夾中的文件夾和文件夾中的文件。我們只需要文件,所以其他的都不取出來了,直接使用"_"佔位就行了。
如果只是想統計出當前目錄下的文件,不包括子目錄的。就使用os.listdir,只統計是文件的個數:
len([xforxinos.listdir(os.path.dirname(__file__))ifos.path.isfile(x)])
Ⅳ Python中OS模板的什麼方法用來改變默認目錄
python os模板操作文件和目錄常用方法
python 常用操作文件和目錄方法:
獲得當前python腳本工作的目錄路徑:os.getcwd()
返回指定目錄下的所有文件和目錄名:os.listdir()。例如:返回C盤下的文件:os.listdir("C:")
刪除一個文件:os.remove(filepath)
刪除多個空目錄:os.removedirs(r'd:python')
檢驗給出的路徑是否是一個文件:os.path.isfile(filepath)
檢驗給出的路徑是否是一個目錄:os.path.isdir(filepath)
判斷是否是絕對路徑:os.isabs()
檢驗路徑是否真的存在:os.path.exists()。例如檢驗D盤下是否有Python文件夾:os.path.exists(r'd:python')
分離一個路徑的目錄名和文件名:os.path.split()。例如:os.path.split(r'/home/qiye/qiye.txt)
返回結果是一個元祖:('/home/qiye','qiye.txt')分離擴展名:os.path.splitext()。例如:例如:os.path.split(r'/home/qiye/qiye.txt)
返回結果是一個元祖:('/home/qiye/qiye','.txt')獲取路徑名:os.path.dirname(filepath)
獲取文件名:os.path.basename(filepath)
讀取和設置環境變數:os.getenv()和os.putenv()
重命名文件或者目錄:os.rename(old,new)
創建多級目錄:os.makedirs(r'c:python est')
創建單個目錄:os.mkdir("test")
獲取文件屬性:os.stat(file)
獲取文件大小:os.getsize(filename)
刪除目錄:os.rmdir("dir") 只能刪除空目錄
獲取文件屬性和時間戳:os.chmod(file)
Ⅳ python中怎樣轉到指定目錄
例如使用IDLE編譯python代碼時,可以使用os.chdir轉到指定目錄
import os.
os.getcwd() #get current work direction.
os.chdir('E:\Python_File\Test') #change direction.
在這之後可以直接調用』E:Python_FileTest』目錄下的函數。
或者用庫調用:
import osimport shutil.
alllist=os.listdir(u"D:\notes\python\資料\")for i in alllist:
aa,bb=i.split(".") if 'python' in aa.lower():
oldname= u"D:\notes\python\資料\"+aa+"."+bb.
newname=u"d:\\newname"+aa+"."+bb.
shutil.file(oldname,newname).
(5)python目錄文件擴展閱讀:
Python中獲得當前目錄和上級目錄:
獲取當前文件的路徑:
from os import path
d = path.dirname(__file__) #返回當前文件所在的目錄 # __file__ 為當前文件, 若果在ide中運行此行會報錯,可改為 #d = path.dirname('.')。
獲得某個路徑的父級目錄:
parent_path = os.path.dirname(d) #獲得d所在的目錄,即d的父級目錄 parent_path = os.path.dirname(parent_path) ##獲得parent_path所在的目錄即parent_path的父級目錄。
獲得規范的絕對路徑:
abspath = path.abspath(d) #返回d所在目錄規范的絕對路徑。
Ⅵ 如何用Python實現查找"/"目錄下的文件夾或文件,感謝
給你各相對來說容易理解的哈
import os
name=raw_input('filename:') #在這里輸入你的查找值
a=os.listdir('/') #把所有/目錄下的文件,目錄存放入a
if name in a: #如果查找值在/目錄下,進行進一步判斷
if os.path.isdir(name): #判斷是否為目錄
print 'dir'
elif os.path.isfile(name) and os.pathislink(name): #符號連接即是文件又是link所以雙重判斷
print 'link'
elif os.path.isfile(name): #判斷是否文件
print 'file'
else: #linux上文件類型多,不符合上面三種列印0ther
print 'other'
else: #不存在列印『not exist』
print 'not exist'