2013-07-10 2 views
1

Я перемещаю некоторые файлы с помощью скрипта python. Сценарий должен работать как на ОС, так и на окнах.Игнорирование скрытых файлов Windows с помощью python glob

Я использую модуль glob для выбора файлов. Отфильтруйте каталоги с помощью метода isfile из os.path. Модуль glob автоматически игнорирует unix. но кажется, что он захватывает некоторые скрытые файлы 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 с использованием Globs, но я) уже понимает большинство скрытых файлов (список встроенных команд here), и б) позволяет указать любые файлы, чтобы исключить из результатов (documentation)

Раскрытие информации: Я сопровождающий.

Смежные вопросы