gpt4 book ai didi

python - 有什么方法可以在 python 脚本中创建一个 Understand (from Scitools) DB?

转载 作者:行者123 更新时间:2023-11-28 18:27:10 39 4
gpt4 key购买 nike

我正在编写一个 python 脚本来确定引用给定项目的项目,并且遇到了从 Scitools 理解的问题。在对 Understands Python API 进行研究后,我似乎需要“打开”数据库才能执行任何命令并发现关于给定项目的所有信息。例如,当我执行此操作时:

例子.py
import understand
import sys

def sortedEntities(db):
for ent in sorted(db.ents(),key= lambda ent: ent.name()):
print (ent.name()," [",ent.kindname(),"]",sep="",end="\n")

if __name__ == '__main__':
# Open Database
args = sys.argv
db = understand.open(args[1])
sortedEntities(db)

我遇到了 understand.UnderstandError: DBCorrupt 错误,因为我没有输入 .udb 文件,而是输入了 .csproj 文件。我假设我必须创建这个 .udb 文件,它是一个 db 文件。

我试图避免使用 Understands GUI 并在 python 脚本中自动化这个静态工具。有什么方法可以从给定项目创建数据库,然后执行 Understand 必须提供的许多命令。非常感谢任何指导!

最佳答案

您可以为此使用命令行实用程序,udb_path 是创建 UDB 的位置,language 是 Java/Python/c#/或其他语言,project_root 是您要运行的项目的根路径。

@staticmethod
def create_udb(udb_path, language, project_root):
try:
output = subprocess.check_output(
"und create -db {udb_path} -languages {lang}".format(udb_path=udb_path, lang=language),
shell=True)
logging.info(output)
output = subprocess.check_output("und add -db {udb_path} {project}".format(
udb_path=udb_path, project=project_root), shell=True)
logging.info(output)
except subprocess.CalledProcessError as e:
logging.exception(e.output)
logging.fatal("udb creation failed")
raise Exception

关于python - 有什么方法可以在 python 脚本中创建一个 Understand (from Scitools) DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513581/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com