歡迎您光臨本站 註冊首頁

Python使用os.listdir和os.walk獲取文件路徑

←手機掃碼閱讀     bom485332 @ 2020-06-02 , reply:0

情況1:在一個目錄下面只有文件,沒有文件夾,這個時候可以使用os.listdir

在我們的桌面上有一個file目錄(文件夾),裡面有三個文件

file(dir)|

--|test1.txt

--|test2.txt

--|test3.txt

用下面的程序獲得文件的絕對路徑:

import os
path = r'C:UsersAdministratorDesktopfile'
for filename in os.listdir(path):
print(os.path.join(path,filename))

使用os.listdir讀取到一個目錄下面所有的文件名,然後使用os.path.join把目錄的路徑和文件名結合起來,就得到了文件的絕路路徑,結果如下:

C:UsersAdministratorDesktopfile est1.txt
C:UsersAdministratorDesktopfile est2.txt
C:UsersAdministratorDesktopfile est3.txt

情況2:遞歸的情況,一個目錄下面既有目錄也有文件,使用os.walk:

os.walk介紹:

我們在桌面上面建立一個file目錄,裡面的組織結構如下:

file(dir):

--|file1(dir):

--|file1_test1.txt

--|file1_test2.txt

--|file2(dir)

--|file2_test1.txt

--|file_test1.txt

--|file_test2.txt

運行一下代碼:

import os
path = r'C:UsersAdministratorDesktopfile'
for dirpath,dirnames,filenames in os.walk(path):
print(dirpath,dirnames,filenames)

輸出結果如下:

C:UsersAdministratorDesktopfile ['file1', 'file2'] ['file_test1.txt', 'file_test2 .txt']
C:UsersAdministratorDesktopfilefile1 [] ['file1_test1.txt', 'file1_test2.txt']
C:UsersAdministratorDesktopfilefile2 [] ['file2_test1.txt']

os.walk輸入一個路徑名稱,以yield的方式(其實是一個生成器)返回一個三元組 dirpath, dirnames, filenames,

dirpath為目錄的路徑,為一個字符串。比如上面的 C:UsersAdministratorDesktopfile和C:UsersAdministratorDesktopfilefile1等。

dirnames列出了目錄路徑下面所有存在的目錄的名稱。比如在 C:UsersAdministratorDesktopfile下面有兩個目錄:file1和file2,那麼它就列出了這個目錄路徑下的目錄名稱。

filenames列出了目錄路徑下面所有文件的名稱。同樣在 C:UsersAdministratorDesktopfile下面有兩個文件file_test1.txt和file_test2 .txt,那麼程序將會列出這兩個文件名。

如何獲得一個路徑下面所有的文件路徑:

import os
path = r'C:UsersAdministratorDesktopfile'
for dirpath,dirnames,filenames in os.walk(path):
for filename in filenames:
print(os.path.join(dirpath,filename))

得到的結果如下:

C:UsersAdministratorDesktopfilefile_test1.txt
C:UsersAdministratorDesktopfilefile_test2 .txt
C:UsersAdministratorDesktopfilefile1file1_test1.txt
C:UsersAdministratorDesktopfilefile1file1_test2.txt
C:UsersAdministratorDesktopfilefile2file2_test1.txt


[bom485332 ] Python使用os.listdir和os.walk獲取文件路徑已經有234次圍觀

http://coctec.com/docs/python/shhow-post-236640.html