Han*_*Sun 8 python unix linux operating-system
代码是这样的:
os.execlp('python', 'python', 'child.py', #other args#) # this works
os.execlp('python', 'child.py', #other args#) # this doesn't work
Run Code Online (Sandbox Code Playgroud)
我读了这个问题:python中的execlp()
但我仍然感到困惑.答案说:
第一个参数是要执行的程序(在PATH上找到).其余的是程序的sys.argv参数.
但是,如果我运行:python child.py 1 2 3并且sys.argv这个过程将是["child.py", "1", "2", "3"],那里python不存在.那我为什么要添加python第二个参数os.execlp呢?
执行python时,它会sys.argv为您创建.该列表中的值基于操作系统传递给它的参数,但它不包含sys.executable该列表中的值.
换句话说,当调用Python时,它会设置sys.argv为除了它自己的可执行文件之外的所有内容.
当你调用一个新的可执行文件时os.execlp(),你仍然需要包含Python,因为这是操作系统将运行的可执行文件.os.execlp()无论你sys.argv以后发现什么,你传递给的东西的前两个值仍然是必需的.
第二个python是python的名称,可以是任何字符串,但必须在其中。
见第二paragrph的http://docs.python.org/3/library/os.html?highlight=os.exec#process-management
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |