исключить .svn папки.

У меня есть сценарий, который я хочу использовать для изменения повторяющейся строки в структуре папок проекта. После изменения я могу проверить это на SVN. Однако, когда я запускаю свой скрипт, он переходит в папки .svn, которые я хочу, чтобы он запустил. Как я могу это достичь? Код ниже, спасибо.

import os import sys replacement = "newString" toReplace = "oldString" rootdir = "pathToProject" for root, subFolders, files in os.walk(rootdir): print subFolders if not ".svn" in subFolders: for file in files: fileParts = file.split('.') if len(fileParts) > 1: if not fileParts[len(fileParts)-1] in ["dll", "suo"]: fpath = os.path.join(root, file) with open(fpath) as f: s = f.read() s = s.replace(toReplace, replacement) with open(fpath, "w") as f: f.write(s) print "DONE" 

2 Solutions collect form web for “исключить .svn папки.”

Попробуй это:

 for root, subFolders, files in os.walk(rootdir): if '.svn' in subFolders: subFolders.remove('.svn') 

И затем продолжить обработку.

Эрр … что?

Когда превышение равно True, вызывающий может изменить список имен dirnames на месте (возможно, используя назначение del или slice), а walk () будет только перезаписывать в подкаталоги, имена которых остаются в dirnames; это можно использовать для обрезки поиска, введения определенного порядка посещения или даже для информирования walk () о каталогах, которые вызывающий создает или переименовывает, прежде чем он снова возобновит walk ().

 for root, subFolders, files in os.walk(rootdir): try: subFolders.remove('.svn') except ValueError: pass dosomestuff() 
  • Как создать код в Python?
  • Что мне нужно разместить в файлах `__init __. Py`, чтобы упростить интерфейс этого пакета?
  • Что такое семантика оператора 'is' в Python?
  • Почему python не разрешает дефисы
  • Python: сортировать пользовательский класс без использования аргумента `key`?
  • Ограничение памяти с помощью appengine-mapreduce
  • python 2 и python 3 __cmp__
  • Общие подводные камни в Python
  • Python - лучший язык программирования в мире.