我有一个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
我得到了想要的结果。但是,我想通过命令行解析.xlsx
或myscript.py
中任何其他文件的文件路径,而不是在.py
文件本身,即
python3 main.py --test --infile /file/path/filename.xlsx
,理想情况下甚至给出更多的参数,如'col1'来打印第二行。有人可以建议如何去当试图解析参数导入模块?
您需要通过另一个parser.add_argument
描述您期望从命令行获得的内容。可能有很多人。如果你不编写代码,那么你的脚本将永远不知道你想做什么。