1. 程式人生 > >Python中os.path.isdir()的正確使用

Python中os.path.isdir()的正確使用

之前網上查詢os.path.isdir()os.path.isfile()的使用;發現很多是錯誤的,主要原因是,傳入的引數不是絕對路徑。

先介紹一下os.listdir()方法,此方法返回一個列表,其中包含有指定路徑下的目錄和檔案的名稱
import os
dirct = '/home/workespace/notebook/'
for i in os.listdir(dirct):
    print(i)
redis
study_test.ipynb
mnist_dataset
.ipynb_checkpoints
yaml-tool
sweetwater
makeyourownneuralnetwork
Untitled.ipynb
AI-Practice-Tensorflow-Notes
working
cornfield

os.path.isdir()os.path.isfile()需要傳入的引數是絕對路徑,但是os.listdir()返回的只是一個某個路徑下的檔案和列表的名稱.

**常見錯誤:**直接使用os.listdir()的返回值當做os.path.isdir()os.path.isfile()的入參

正確用法:需要先使用python路徑拼接os.path.join()函式,將os.listdir()返回的名稱拼接成檔案或目錄的絕對路徑再傳入os.path.isdir()os.path.isfile().

os.path.join()用法:
import os
dirct = '/home/workespace/notebook/'
for i in os.listdir(dirct): fulldirct = os.path.join(dirct,i) print(fulldirct)
/home/workespace/notebook/redis
/home/workespace/notebook/study_test.ipynb
/home/workespace/notebook/mnist_dataset
/home/workespace/notebook/.ipynb_checkpoints
/home/workespace/notebook/yaml-tool
/home/workespace/notebook/sweetwater
/home/workespace/notebook/makeyourownneuralnetwork
/home/workespace/notebook/Untitled.ipynb
/home/workespace/notebook/AI-Practice-Tensorflow-Notes
/home/workespace/notebook/working
/home/workespace/notebook/cornfield
os.path.isdir()用於判斷某一物件(需提供絕對路徑)是否為目錄
import os
dirct = '/home/workespace/notebook/'
for i in os.listdir(dirct):
    fulldirct = os.path.join(dirct, i)
    if os.path.isdir(fulldirct): #入參需要是絕對路徑
        print(i)
redis
mnist_dataset
.ipynb_checkpoints
yaml-tool
sweetwater
makeyourownneuralnetwork
AI-Practice-Tensorflow-Notes
working
cornfield
os.path.isfile()用於判斷某一物件(需提供絕對路徑)是否為檔案
import os
dirct = '/home/workespace/notebook/'
for i in os.listdir(dirct):
    fulldirct = os.path.join(dirct, i)
    if os.path.isfile(fulldirct): #入參需要是絕對路徑
        print(i)
study_test.ipynb
Untitled.ipynb