我有一个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)
...
如何排除存储库子树?
答案 0 :(得分:5)
正如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)
答案 1 :(得分: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)