2013-07-10 151 views
1

我正在用python腳本移動一些文件。該腳本應該可以在OSX和Windows上運行。用python glob忽略windows隱藏文件

我正在使用glob模塊來選擇文件。使用os.path中的isfile方法過濾掉目錄。 glob模塊自動忽略unix。文件,但它似乎確實抓住了一些Windows隱藏文件。我添加了代碼來刪除一個似乎在Windows中出現的「desktop.ini」。

是否有任何其他Windows文件可能出現或有沒有辦法確保我不選擇Windows中的隱藏文件?

files = glob.glob('*') 
files = filter(os.path.isfile, files) # filter out dirs 
if "desktop.ini" in files : files.remove('desktop.ini') 
# then using "shutil.move" to actually move the files 
+1

[跨平臺隱藏文件檢測]的可能重複(http://stackoverflow.com/questions/284115/cross-platform-hidden-file-detection) –

+0

此答案有幫助嗎? (僅Windows的API)http://stackoverflow.com/a/14063074/233608 –

+0

謝謝從鏈接中獲得一些指針。雖然感覺有點複雜。希望glob模塊在那裏會有一些平臺獨立的魔法。 – Joop

回答

1

你也許想試試Formic

from formic import FileSet 
fileset = FileSet(directory="/some/where/interesting", 
       include="*.py", 
       exclude=["desktop.ini", ".*", "addition", "globs", "here"] 
      ) 
for filename in fileset: 
    # use shutil to move them 

這是使用水珠一個Python庫,但我)已經理解最隱蔽的文件(內建here)的列表,以及ii)允許您指定的任何文件,從結果(documentation

排除

披露:我是維護者。