2015-11-01 214 views
2

給定一個目錄爲字符串,如何查找是否存在任何文件?Python:檢查給定目錄中是否存在任何文件

os.path.isFile()  # only accepts a specific file path 
os.listdir(dir) == [] # accepts sub-directories 

我的目標是檢查路徑是否只有文件(不包括子目錄)。

+0

在實踐中,很少需要這樣的東西,因爲如果沒有任何東西,正確編寫循環來處理目錄中所有感興趣的文件只會迭代0次。你希望你可以在循環中對它們進行計數,並且如果檢查看看有多少(如果有的話)被處理過。 – martineau

回答

8

要只檢查一個特定的目錄中,這樣的解決方案就足夠了:

from os import listdir 
from os.path import isfile, join 

def does_file_exist_in_dir(path): 
    return any(isfile(join(path, i)) for i in listdir(path)) 

要剖析發生了什麼:

  • 方法does_file_exist_in_dir將會把你的路徑。
  • 使用any如果通過調用listdir來遍歷路徑的內容找到文件,它將返回True。請注意使用join作爲路徑,以便提供合格的文件路徑名稱以進行正確檢查。

作爲一個選項,如果你想遍歷指定路徑的所有子目錄,並檢查文件,您可以使用os.walk,只是檢查,看看是否你在級別包含任何這樣的文件:

for dir, sub_dirs, files in os.walk(path): 
    if not files: 
     print("no files at this level") 
+0

「文件打印中存在文件錯誤」爲' – SIslam

+0

@idjaw:os.walk()將經過所有子目錄。我只是在尋找一個給定的路徑 – meestaman

+0

@meestaman我實際上正在爲這個問題準備一個解決方案。耽誤。 :) – idjaw

相關問題