【发布时间】:2021-01-15 12:52:12
【问题描述】:
我有一个 python 脚本,我需要在其中传递多个参数。第一个参数可能有多个电子邮件,第二个是一个字符串,第三个也是一个字符串。
假设我有文件
mytest.py:
def tfunc(em, st1, st2):
#### do blah blah blah
def main ():
eml = sys,argv[1].strip()
st1v = sys,argv[2].strip()
st2v = sys,argv[3].strip()
dosom = tfunc(eml, st1v, st2v)
if __name__ == '__main__':
main()
现在我测试在命令行上运行该函数的方式是:
python mytest.py xx@yz.com value of file 1 value of file 2
所以参数实际上是xx@yz.com(还需要知道如果我有多个电子邮件会发生什么),“文件1的值”和“文件2的值”
在我的实际最终代码中,两个参数都存在空格。但是,当我运行代码时,它会正确接收电子邮件(如果只有一个),但将第二个参数作为值(来自第一个参数)和 of(来自第一个参数)。但这不是我想要的。
我正在寻找 xx@yz.com 作为第一个参数,“文件 1 的值”作为第二个参数,“文件 2 的值”作为第三个参数。
我能得到一些帮助吗?提前致谢。
【问题讨论】:
-
为什么不在命令行本身用引号将它们括起来?
-
谢谢,但由于我是从另一个程序运行程序(R 使用 sytem 命令),所以引号不起作用
标签: python arguments parameter-passing command-line-arguments sys