我使用argv在终端中传递python脚本的唯一参数。在多个唯一文件上运行相同程序时非常有用(此程序解析某些事物的xml文件)。我已经构建了三个不同的程序,用于独特的目的。
我正在将我的程序聚合到一个.py文件中,这样我就可以在python的实际运行实例中使用'import',然后逐个浏览文件:
>>>import xml
>>>xml.a()
>>>xml.b()
>>>xml.c()
如何动态地将参数传递给这些程序?我以这种方式调用程序后放置参数时出现语法错误。
>>>xml.a() file1.xml file1.csv
^
>>>SyntaxError: invalid syntax
答案 0 :(得分:2)
通过将参数放在括号中来将参数传递给Python中的函数(这些参数称为"参数," see documentation)。因此,您需要修改函数,以便它们可以接受参数(而不是从sys.argv
读取),然后运行如下函数:
<强> my_library.py 强>
def function1(filename):
print filename
<强>解释强>
>>> import my_library
>>> my_library.function1("file1.xml")
>>> file1.xml
如果您希望您的函数能够处理无限数量的参数(就像使用sys.argv
一样),您可以使用参数列表末尾的*
语法来捕获剩余的参数参数作为列表(see documentation)。例如:
<强> my_library.py 强>
def function1(*filenames):
for filename in filenames:
print filename
<强>解释强>
>>> import my_library
>>> my_library.function1("file1.xml", "file2.csv", "file3.xml")
file1.xml
file2.csv
file3.xml