Python SearchFile.py by os module

  • 129
  • 0
  • 2017-12-03

這個 py 檔,主要是用來 Search File 使用,他是透過 Endswith 做比對

再爬文的過程中,我們有時候知道檔案名稱但是不知道其對應的真實路徑,所以有找過 python 相關範例程式碼,這邊進行微調,如有需要請自行取用。

# 這個 .py 主要是用來 Seach 檔案,目前支持 currentfile 和 current & sub file 這兩種格式
# current file demo: python searchFile.py E:\ .txt false
# current & sub file demo : python searchFile.py E:\ .txt true

import sys,os
class SearchFile:
    if len(sys.argv) < 3:
        print("please input arg {seach_dir} {file_name_ends_with} {(option)seach_all_file}")
        sys.exit()
    elif len(sys.argv) == 3:
        search_dir = sys.argv[1]
        file_name_ends_with = sys.argv[2]
        search_all_flie = False
    else:
        search_dir = sys.argv[1]
        file_name_ends_with = sys.argv[2]
        search_all_flie = sys.argv[3]

    if(str(search_all_flie).upper() == "TRUE"):
        for root, dirs, files in os.walk(search_dir):
            for file in files:
                if file.endswith(file_name_ends_with):
                    print(os.path.join(root, file))
    else:
        for file in os.listdir(search_dir):
            if file.endswith(file_name_endfs_with):
                print(os.path.join(seach_dir, file))

而參數有設一個 flag 是用來控制資料層級。

  • 如果為 flag = false 表示,查詢範圍為當前資料夾,但不包含子資料夾內容。
  • 如果為 flag = trure 表示,查詢範圍為當前資料夾和所有子資料夾內容。

範例 : python searchFile.py C:\ devenv.exe true

查詢結果:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

 


如果有任何錯誤或者引用問題請麻煩告知 !!!