在协同程序中设置标记

时间:2018-09-15 21:49:32

标签: python-3.x coroutine

我正在尝试使用vcxproj-stream-editor编辑我的.vcxproj文件。我想做的是:

  1. 调用check_file来查看文件中是否存在节并设置一个标志。
  2. 如果未设置该标志,请调用filter_file进行添加。

但是如何在check_file所调用的协程中设置标记?我尝试声明一个全局标志:

#! python3

import vcxproj

Configuration_debug_x64 = None

@vcxproj.coroutine
def print_project_guid():
    while True:
        action, params = yield
        if action == "start_elem" and params["name"] == "PropertyGroup":
            if "attrs" in params:
                if "Label" in params["attrs"]:
                    if params["attrs"]["Label"] == "Configuration":
                        if "Condition" in params["attrs"]:
                            if params["attrs"]["Condition"] == "'$(Configuration)|$(Platform)'=='Debug|x64'":
                                Configuration_debug_x64 = True

vcxproj.check_file("My.vcxproj", print_project_guid)

if Configuration_debug_x64:
    print("Configuration_debug_x64")
else:
    print("No Configuration_debug_x64")

但是这不起作用,并且我无法在传递给check_file的函数中添加参数。我缺少一些明显的方法吗?

0 个答案:

没有答案