我一直在尋找對文件與Python循環方式在目錄中,我發現這個問題的二進制文件:遍歷一個沒有擴展名
Loop through all CSV files in a folder
的一點是,我有是二進制文件文件,最後沒有文件擴展名。 我想讓我的程序做的是遍歷所有沒有擴展名的文件。
無論如何使用通配符來應用這個? (或者其他方式?)
我一直在尋找對文件與Python循環方式在目錄中,我發現這個問題的二進制文件:遍歷一個沒有擴展名
Loop through all CSV files in a folder
的一點是,我有是二進制文件文件,最後沒有文件擴展名。 我想讓我的程序做的是遍歷所有沒有擴展名的文件。
無論如何使用通配符來應用這個? (或者其他方式?)
我建議使用os.listdir()
,然後檢查文件名是否有擴展名(檢查文件名是否有點)。一旦你得到所有文件名沒有點(即沒有擴展名),只要確保文件名不是實際的目錄名,就是這樣。
聽起來像是你有興趣在什麼是
[f for f in next(os.walk(folder))[2] if '.' not in f]
您可以使用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)
謝謝你的回答,這是一個完全按我想要的方式工作的人。 – philippos
您可以使用glob
module並篩選出具有擴展的文件:
import glob
for filename in (filename for filename in glob.iglob('*') if '.' not in filename):
print(filename)
看起來不錯。您可以添加'import os'並將其寫入一個方法以使其可以隨時使用。 –