2017-03-15 74 views
0

我想與用戶輸入的下列特定文件類型打開一個目錄中的文件:打開文件與特定類型的蟒蛇

if type is not None: 
    for file in glob.glob(dir + "/" + type): 
     if os.path.isfile(file): 
      open_file(file) 
     if os.path.isdir(file): 
      open_folder(file) 

類型是「T」作爲參數解析器的文件類型變量的地位,D是目錄:

$ python scan.py -D /home/ -t .php 

但它只是給出了一個空輸出,而不是與.php文件的預期結果。


+0

所以,你的glob語句是'glob.glob('/ home // php')'你期望這個能找到什麼? – SiHa

+0

嘗試在您的glob模式'glob.glob(dir +'/ *。'+ type)' –

+0

仍然爲空的文件擴展名之前添加通配符,我已經玩過本節,沒有給出正面響應。 @HuyLe –

回答

0

請試試這個。

import glob 
path = "/home/yourdir/*.php" 
for filename in glob.glob(path, recursive=True): 
    with open(filename, 'r') as f: 
     for line in f: 
      print line, 

欲瞭解更多Check this

+0

這是類似的情況,但目的不同。路徑和類型由用戶給出。我的代碼在目錄中包含如此多的子文件夾時卡住了,它不會給出文件類型@Shailesh –

0

path.py可能是你想要的。

安裝path.py

pip install path.py 

並使用walkfiles帶有圖案。

import path 
D = "/home/yourdir" 
T = ".php" 

for filename in path.Path(D).walkfiles(pattern= "*"+T): 
    print(filename)