我從一些 git repo 中檢索了一個 python 項目。要運行此項目,必須通過命令行使用正確的參數啟動一個文件。這是一個例子:#! /usr/bin/env pythonimport argparseparser = argparse.ArgumentParser(description='Description')parser.add_argument('arg1')parser.add_argument('arg2')# %%def _main(args): # Execute the code using argsif __name__ == '__main__': _main(parser.parse_args())我想在我自己的項目中使用這段代碼,因此,使用一組預定義的參數從另一個 python 文件調用主函數。我找到了不同的方法,但我不知道這樣做的好方法是什么。使用 os 包調用文件,但對我來說似乎是一種不好的做法。重構文件以便主函數采用所需的參數(并擺脫 args 對象),但這意味著命令行調用將不再起作用。其他 ?
2 回答
揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
導入otherprogram到您自己的程序中。
otherprogram._main()從您自己代碼中的適當位置調用,并傳遞一個argparse.Namespace實例。
argparse如果需要,您可以使用自己的調用來構建它,或者只是以其他方式構建值。
呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
只要確保 args 包含具有正確屬性的對象,您實際上就可以調用 main 方法。考慮這個
import argparse
def _main(args):
print(args.arg1)
_main(argparse.Namespace(arg1='test1', arg2='test2'))
在另一個文件中,您可以這樣做:
from some_git_repo import _main
from argparse import Namespace
_main(Namespace(arg1='test1', arg2='test2'))
添加回答
舉報
0/150
提交
取消
