C:\Python\term_frequency\textbase
如果不想輸入三次不同參數
可以用os.listdir() 搭配for迴圈
import os
path=’C://Python/term_frequency/textbase’
“””
#需要這個方向的 /
#不然會出現:
OSError: [WinError 123] 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。: ‘C:\\Python\term_frequency\textbase’
“””
print(os.listdir(path))
若有目錄
os.listdir(path)也會含目錄:
資料夾內的檔案如下:
全數都是需要處理的csv檔
若有其他子目錄或非csv檔
os.listdir() 全部都會加進來list中
如何過濾不要的檔案?
以下解釋 glob.glob()
的含義:
-
globbing(通配符匹配):globbing 是一種通過使用通配符(例如星號
*
和問號?
)來匹配文件或文件夾名稱的方法。通配符匹配允許您模糊地匹配文件或文件夾名稱,以找到符合特定模式的所有文件或文件夾。 -
glob
模塊:Python的glob
模塊提供了一個名為glob()
的函數,該函數允許您使用通配符來搜索文件系統中的文件或文件夾。通過使用glob()
,您可以輕鬆地查找符合特定模式的文件,並將它們返回為一個文件列表。
*
和 ?
是通配符,用於模式匹配文件或文件夾名稱。這些通配符在不同的操作系統和編程語言中都有通用的使用方式:
-
*
(星號):*
通配符匹配零個或多個字符。例如,*.txt
將匹配所有以.txt
為擴展名的文件。 -
?
(問號):?
通配符匹配一個字符。例如,file?.txt
將匹配像file1.txt
、fileA.txt
這樣的文件,但不會匹配file.txt
(因為它缺少一個字符)或file10.txt
(因為它有多於一個字符的缺失)。
import os
import glob
folder = r”C:\antenna_AMS\21046\emt2csv\all”
fpath = os.path.join(folder, “*.csv” )
#可以連接字串成路徑形式(自動加\\)
#效果同folder + “\\” + “*.csv”
glob.glob(fpath)
輸出結果:
folder中故意多放一個
新文字文件.txt (副檔名非.csv)
確實沒將該檔名加入list中:
glob不支援所有正則表示法
簡單的正則表示法
可以再做一些篩選
glob.glob(“C:\\antenna_AMS\\21046\\emt2csv\\all\\[0-1][0-9].csv”)
[0-1][0-9]改成[\d]{2} 會搜尋不到任何路徑
目錄中故意多放一個aa.csv,將被濾除
推薦hahow線上學習python: https://igrape.net/30afN