2016-11-05 180 views
0

我一直在尋找對文件與Python循環方式在目錄中,我發現這個問題的二進制文件:遍歷一個沒有擴展名

Loop through all CSV files in a folder

的一點是,我有是二進制文件文件,最後沒有文件擴展名。 我想讓我的程序做的是遍歷所有沒有擴展名的文件。

無論如何使用通配符來應用這個? (或者其他方式?)

回答

0

我建議使用os.listdir(),然後檢查文件名是否有擴展名(檢查文件名是否有點)。一旦你得到所有文件名沒有點(即沒有擴展名),只要確保文件名不是實際的目錄名,就是這樣。

1

聽起來像是你有興趣在什麼是

[f for f in next(os.walk(folder))[2] if '.' not in f] 
+0

看起來不錯。您可以添加'import os'並將其寫入一個方法以使其可以隨時使用。 –

1

您可以使用os.path.splitext來檢查文件是否具有擴展名或沒有。

看到這個例子:

import os 

os.path.splitext("foo.ext") 
=> ('foo', '.ext') 

os.path.splitext("foo") 
=> ('foo', '') 

所以,你可以這樣做:

import os 

path = "path/to/files" 
dirs = os.listdir(path) 

for path in dirs: 
    if not os.path.splitext(path)[1]: 
     print(path) 

但是,提防 「隱藏」 的文件,其名稱以一個點,即:」開始的.bashrc 」。

您也可以爲您在文件名點的存在:

for path in dirs: 
    if "." not in path: 
     print(path) 
+0

謝謝你的回答,這是一個完全按我想要的方式工作的人。 – philippos

0

您可以使用glob module並篩選出具有擴展的文件:

import glob 

for filename in (filename for filename in glob.iglob('*') if '.' not in filename): 
    print(filename)