亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 最佳實踐。從另一個 python 文件調用命令行 python 文件

Python 最佳實踐。從另一個 python 文件調用命令行 python 文件

翻過高山走不出你 2022-01-11 17:23:11
我從一些 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如果需要,您可以使用自己的調用來構建它,或者只是以其他方式構建值。



查看完整回答
反對 回復 2022-01-11
?
呼喚遠方

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'))


查看完整回答
反對 回復 2022-01-11
  • 2 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號