如何读取dev.ENV变量并在Python中组合为单条命令在Windows cmd运行
实现方案
核心逻辑:读取dev.ENV文件的键值对后按规则拼接,可直接生成预期命令并在Windows cmd中执行。
完整可运行代码
import os import subprocess # 存储env键值对的字典 env_vars = {} # 读取dev.ENV文件 with open("C:/Test/dev.ENV", mode="r", encoding="utf-8") as my_file: for line in my_file.readlines(): # 过滤空行、无=的无效行 line = line.strip() if not line or '=' not in line: continue # 按第一个=拆分,避免值中包含=导致解析错误 key, value = line.split('=', 1) env_vars[key.strip()] = value.strip() # 拼接命令,若不需要去掉path里的tests/前缀,直接删除replace段即可 command = " ".join([ env_vars['CYPRESS_baseUrl'], env_vars['runCyCommand'], env_vars['tags'], env_vars['path'].replace('tests/', ''), env_vars['config'] ]) # 打印生成的命令校验是否符合预期 print("生成的执行命令:") print(command) # 取消下方注释即可直接在Windows cmd中运行命令 # if os.name == 'nt': # subprocess.run(command, shell=True, check=True)
说明
- 你原有代码存在冗余逻辑:第一行的
f = open("C:/Test/dev.ENV", "r")没有用到也未主动关闭,可直接删除 - 代码按第一个
=拆分每行内容,兼容值中包含=的特殊场景 - 拼接时默认去掉了path变量里的
tests/前缀,和你给出的预期输出完全匹配,如果你需要保留该前缀,直接删掉.replace('tests/', '')即可 - 执行脚本时会先打印生成的命令,确认无误后取消最后两行的注释即可自动调用Windows cmd运行命令
内容的提问来源于stack exchange,提问作者soccerway
相关产品推荐
相关产品推荐

