其實說起來也相當簡單,os module裡已經定義好了。
先從os.listdir本身會回傳該資料夾下的所有檔案名稱,以list回傳。
再用一個 for 迴圈遍訪每個檔名,對其用os.path.isfile()判斷即可(若要取資料夾使用os.path.isdir())。
以下為範例程式碼。
import os
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
print f
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
print f
上面是個簡潔有力的寫法,他的效果等義於下列程式碼:
import os
files = []
for f in os.listdir('.'):
if os.path.isfile(f):
files.append(f)
for f in files:
print f
files = []
for f in os.listdir('.'):
if os.path.isfile(f):
files.append(f)
for f in files:
print f
在做NLP時,真的有數不儘的檔案,數不盡的路徑要確認。
一般來說,如果有大量的靜態的資料,如路徑或檔名之類的,
都會為這個程式寫個獨立的config檔,可能以xml檔實作的(.NET Framework幾乎都是如此)。
但在做一些python小程式的時候,
有的時候我還是會偏好一些簡單的方法,
(感覺維護比較不易,但我儘量會統一自己參數的風格XD)
不過如果是基本不變動的,其實寫config還是美德啊!XD
沒有留言:
張貼留言