Saat python dijalankan, ia membuat sys.argv
untukmu. Nilai dalam daftar itu berbasis pada argumen yang diteruskan oleh sistem operasi, tetapi berhenti sys.executable
nilai dari daftar itu.
Dengan kata lain, ketika Python dipanggil, itu menetapkan sys.argv
untuk semuanya tetapi dapat dieksekusi sendiri .
Saat Anda memanggil baru dapat dieksekusi melalui os.execlp()
, Anda masih perlu menyertakan Python karena itulah yang dapat dieksekusi yang akan dijalankan oleh OS. Dua nilai pertama dari apa yang Anda berikan ke os.execlp()
masih diperlukan, apa pun yang Anda temukan di sys.argv
nanti.
Python kedua adalah nama untuk python, bisa berupa string apa saja, tetapi harus ada.
Lihat paragraf kedua dari http://docs.python.org/3/library/os.html?highlight=os.exec#process-management:
Berbagai fungsi exec* mengambil daftar argumen untuk program baru yang dimuat ke dalam proses. Dalam setiap kasus, argumen pertama ini diteruskan ke program baru sebagai namanya sendiri, bukan sebagai argumen yang mungkin diketik pengguna pada baris perintah. Untuk pemrogram C, ini adalah argv[0] yang diteruskan ke main() program. Misalnya, os.execv('/bin/echo', ['foo', 'bar']) hanya akan mencetak bilah pada keluaran standar; foo tampaknya akan diabaikan.