python - os.walk 排除 .svn 文件夹

标签 python

我得到了一个脚本,我想用它来更改整个项目文件夹结构中的重复字符串。一旦更改,我就可以将其 checkin 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"

最佳答案

试试这个:

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

然后继续处理。

关于python - os.walk 排除 .svn 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276255/

相关文章:

python - 关于 python 中的属性类

python - numpy 包含多个 dtype 时如何确定数组数据类型?

python - 当脚本在根目录之外时获取 scrapy 项目设置

python - 分组后用均值和标准差绘制误差线

Python 2.7 套接字 htons

python - 使用字符串调用函数

python - 什么时候使用 __call__ 是个好主意?

Python dist-packages 权限

python - 如何通过将新产品添加到 ManyToMany 字段来动态添加字段

python - 可重用代码沿不同的数组维度进行迭代