我有以下代码。
import os, fnmatch, sys
print ("HERE")
def test(arg):
print ("arg" + arg)
test
从命令行运行脚本时,我将如何调用该函数?
我有以下代码。
import os, fnmatch, sys
print ("HERE")
def test(arg):
print ("arg" + arg)
test
从命令行运行脚本时,我将如何调用该函数?
这个 python 成语也被大量使用:
if __name__ == "__main__":
# do stuff
...
当脚本从控制台运行时,这个 if 子句中的所有内容都将运行。这样您就可以将驱动程序代码放在模块文件等中。
如果您将...
上面的内容替换为test("blah blah")
您将得到您想要的结果:)
在 Python 中获取命令行选项的最简单方法是使用sys.argv
. 这会以数组的形式为您存储任何命令行选项。
打印参数非常简单。
import sys
print(str(sys.argv))
如果您要在此脚本上运行以下命令行:
python test.py arg1 arg2 arg3
它将打印['test.py', 'arg1', 'arg2', 'arg3']
您可以使用它来构建调用您的函数。但是,您可能已经注意到我们的输出,它不仅包含您的参数,还包含我们执行的文件的名称。因此,我们需要首先确保用户向我们提供了至少一个参数,除了文件名。
我们使用len来做到这一点。
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
然后我们可以将它与您的函数一起使用来打印第一个参数。
import sys
def test(arg):
print ("arg" + arg)
if len(sys.argv) > 1:
test(sys.argv[1])
如果你想从命令行运行调用函数test
,你最好使用类似于OptionParser的东西来解析 args。不过,请记住,它OptionParser
已被弃用,您应该考虑改用ArgParse。
这是一个使用OptionParser
and your 函数的工作示例。
from optparse import OptionParser
# Options/Args
parser = OptionParser()
# Add Options
parser.add_option("-t", "--test", dest="test")
# Parse the Options
(options, args) = parser.parse_args()
usage = "usage: %prog [options] arg"
parser = OptionParser(usage)
print ("HERE")
def test(arg):
print ("arg: " + arg)
# If the command line for test was specified.
if options.test:
# Run the test function.
test(options.test)
当您运行应用程序时,您只需添加-t your-text
即可调用您的函数。
例如
python3 test.py -t hello
会输出:
HERE
arg: hello
Python 中的 def 结构是“定义”的缩写。您编写的代码块定义了测试函数,但没有调用它。在解释器中定义好测试函数后,就可以执行命令了
test('whatever')
'whatever' 是你想要的任何东西。或者您可以在定义 test 后将该命令放入文件中,然后输入 test.py
在下面
def test(arg):
print ("arg" + arg)
写
test('testing')
然后以与以前相同的方式运行它。要使用用户输入运行它,
uinpt = raw_input("Enter something: ")
test(uinpt)
这是一个非常简单的示例,没有参数:
def do_hex():
text=raw_input("Enter string to convert to hexadecimal: ")
print "HEX: " + text.encode('hex')
#call the function
do_hex()