如何从命令行调用一个函数传入命名的可选参数

时间:2018-04-24 19:39:49

标签: python python-2.7 parameters

我有一个带有函数的Python(2.7)文件。我想从命令行调用它并通过param名称传递可选参数。

在我的py文件中,我有这个功能:

def split_file(source_file_path, alt_output_path='', chunk_size=2000000): 

在底部我有这个:

if __name__ == '__main__':    
    split_file(*sys.argv[1:])

如何设置它才能像这样调用它?

> C:\Python27\python C:\Work\file_splitter.py "C:\Work\files\myfile.txt" alt_output_path="C:\EBI\Work\files\alt"

我看了argparser,这对我来说有点混乱。

1 个答案:

答案 0 :(得分:1)

这应该有效:

to_split_args = [a.split("=") for a in sys.argv[1:]]
args = [a[0] for a in to_split_args if len(a) == 1]
kwargs = dict(a for a in to_split_args if len(a) == 2)
split_file(*args,**kwargs)

但你应该深入研究argparser