python中os.exec*中的重复参数

python中os.exec*中的重复参数,python,Python,我在《Python编程》一书中看到了这些代码: import os parm = 0 while True: parm += 1 pid = os.fork() if pid == 0: # copy process os.execlp('python', 'python', 'child.py', str(parm)) # overlay program

我在《Python编程》一书中看到了这些代码:

import os

parm = 0
while True:
    parm += 1
    pid = os.fork()
    if pid == 0:                                             # copy process
        os.execlp('python', 'python', 'child.py', str(parm)) # overlay program
        assert False, 'error starting program'               # shouldn't return
    else:
        print('Child is', pid)
        if input() == 'q': break
为什么
os.execlp
中有两条蟒蛇?第二个可以是任何字符串。第二个论点是什么

编辑:在阅读了可能重复的问题后,我仍然不明白。这是child.py:

import os, sys
print('Hello from child', os.getpid(), sys.argv[1])

所以
argv[1]
str(parm)
argv[0]
是child.py,不是吗

第一个
python
是要运行的可执行文件的名称,第二个是
argv[0]
的值,这是它的名称,这就是它可以是任何字符串的原因


文档的结构不好,人们可能会忽略第二段,因为他们直接跳到os.exec*上,认为上面的内容不相关

你试过文档了吗?但是说sys.argv[0]是脚本本身,为什么第二个python是argv[0]?