攝影或3C

Python: os.listdir(路徑) -> list ,回傳該路徑中有那些檔案,目錄; fpath = os.path.join(folder, “*.csv” ) ; glob.glob(fpath) #通配符匹配(globbing),抓取目錄下的指定檔案名稱

os.listdir()參考資料

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.txtfileA.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

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡