1

我有一个 python 脚本,我一直在拼凑(我的第一次 python 尝试之一)。

该脚本递归查找 XCode 项目文件的文件夹;该脚本工作正常,但我想对其进行调整以跳过任何 .svn(或 .hg 或 .git)文件夹,这样它就不会尝试修改源存储库。

这是递归搜索的脚本

for root, dirnames, files in os.walk('.'):
    files = [f for f in files if re.search("project\.pbxproj", f)]
    for f in files:
        filename = os.path.join(root, f)
        print "Adjusting BaseSDK for %s" % (filename)
        ...

如何排除存储库子树?

4

2 回答 2

6

正如 S.Lott 在他的评论中所说,这在os.walk. 以下应该可以正常工作:

for root, dirs, files in os.walk("."):
    if ".hg" in dirs:
        dirs.remove(".hg")
    for f in files:
        print os.path.join(root, f)
于 2011-04-29T22:48:54.513 回答
0

在处理文件之前,您可以检查文件名中的第一个字符是否以“.”开头,如果是,则继续循环中的下一项。

for root, dirnames, files in os.walk('.'):
    files = [f for f in files if re.search("project\.pbxproj", f)]
    for f in files:
        ### EDIT START
        if f[0] == ".":
            continue
        ### EDIT FINISH

        filename = os.path.join(root, f)
        print "Adjusting BaseSDK for %s" % (filename)
于 2011-04-29T22:35:03.973 回答