如何使函数接受运行时参数

时间:2015-08-05 11:22:34

标签: python

我想定义一个函数,以便我希望它接受命令行参数

下面是我的代码

def tc1(resloc):
    from uiautomator import Device;
    'Do some activity'
    with open(resloc, 'a') as text_file:
            text_file.write('TC1 PASSED \n')
            text_file.close()
    else:
        with open(resloc, 'a') as text_file:
            text_file.write('TC1 FAILED \n')
            text_file.close()    

if __name__ == '__main__':
    tc1("C:\\<pathtoautomation>\\Results\results.txt")

现在当我从python执行相同的using命令行时,它继续引用这里提到的路径tc1("C:\\<pathtoautomation>\\Results\results.txt")并且不考虑我从命令行传递的内容

\Scripts>python.exe trail.py C:\\<pathtoautomationresults>\\Results\results.txt

3 个答案:

答案 0 :(得分:0)

您所看到的是sys.argv

  

传递给Python脚本的命令行参数列表。的argv [0]   是脚本名称(它取决于操作系统是否为   是否完整路径名)。如果使用-c执行命令   解释器的命令行选项,argv [0]设置为字符串   &#39; -c&#39 ;.如果没有脚本名称传递给Python解释器,argv [0]   是空字符串。

     

循环标准输入或者给出的文件列表   命令行,请参阅fileinput模块。

你可以像使用它一样:

import sys

def main(argv):
    # do something with argv.


if __name__ == "__main__":
   main(sys.argv[1:])  # the argv[0] is the current filename.

并使用

调用它

python yourfile.py yourargsgohere

查看更详细的用途here

答案 1 :(得分:0)

您需要使用sys.argv来获取命令行参数。

你的代码中的

可能如下所示:

import sys
...  # other stuff

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

有很多tutorials可以帮助您使用sys.argv

答案 2 :(得分:0)

使用sys.argv访问命令行参数。正确使用的详细说明在以下链接中给出: http://www.tutorialspoint.com/python/python_command_line_arguments.htm