Tôi muốn lấy giá trị thực của argv [0] của hệ điều hành trong một chương trình Python. Python sys.argv [0] không phải là giá trị này: nó là tên của tập lệnh Python đang được thực hiện (với một số ngoại lệ). Những gì tôi muốn là một foo.py rằng sẽ in "someString" khi thực hiện nhưLàm thế nào bạn có thể có được argv [0] (không phải sys.argv [0]) của hệ điều hành bằng Python?
Chương trình tầm thường
#! /usr/bin/env python
import sys
print sys.argv[0]
sẽ in "foo.py" để thay thế.
Có ai biết cách nhận điều này không? Có một số hàm liên quan trong API C C: ví dụ: Py_GetProgramName. Nhưng điều này dường như không được tiếp xúc với thế giới Python ở bất cứ đâu. Py_GetProgramFullPath hoạt động tắt của argv [0] nhưng nó cố gắng để có được một đường dẫn đến một trình thông dịch Python. (Giá trị này được truyền cho sys.executable, do đó biến đó không đúng.) Tôi có thực sự phải viết một mô-đun C để có được giá trị này không?
Chỉnh sửa: Cũng được hỏi (nhưng không được trả lời một cách hữu ích) here.
Nó không phải là một lỗi bash, lệnh 'exec' thay thế vỏ bằng chương trình khác. – interjay
Ooh, đáng sợ. Tôi sẽ không ngạc nhiên nếu điều này có vấn đề về tính di động nhưng nó tốt cho tôi. – pkgw
@interjay Tôi hiểu, cảm ơn! – vz0