如何通过argparse解析命令行参数到导入的模块



我有一个python脚本,使用argparse来解析命令行参数,下面是其中的一个示例。

#main.py
import argparse
from my_folder.myscript import foo
#...lines of code
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
"--test",
action='store_true', 
default=None
)

args = parser.parse_args()
if args.test:
foo()
if __name__=='__main__':
main()

myscript.py

import pandas as pd

def foo():
data = pd.read_excel('file/path/filename.xlsx', usecols = ['col1', 'col2'])
print(data)   
print(data['col1'].tolist())

如果我使用:

python3 main.py --test
我得到了想要的结果。但是,我想通过命令行解析.xlsxmyscript.py中任何其他文件的文件路径,而不是在.py文件本身,即
python3 main.py --test --infile /file/path/filename.xlsx

,理想情况下甚至给出更多的参数,如'col1'来打印第二行。有人可以建议如何去当试图解析参数导入模块?

您需要通过另一个parser.add_argument描述您期望从命令行获得的内容。可能有很多人。如果你不编写代码,那么你的脚本将永远不知道你想做什么。

最新更新