मैं पाइथन प्रोग्राम में ऑपरेटिंग सिस्टम के argv [0] का सही मान प्राप्त करना चाहता हूं। पायथन का sys.argv [0] यह मान नहीं है: यह पाइथन लिपि का नाम निष्पादित किया जा रहा है (कुछ अपवादों के साथ)। क्या मैं चाहता हूँ एक foo.py कि "somestring" प्रिंट होगा जबपाइथन में आप ओएस के argv [0] (sys.argv [0] नहीं) कैसे प्राप्त कर सकते हैं?
तुच्छ कार्यक्रम
#! /usr/bin/env python
import sys
print sys.argv[0]
के रूप में मार डाला "foo.py" के बजाय प्रिंट होगा है।
क्या कोई यह जानता है कि इसे कैसे प्राप्त किया जाए? पायथन सी एपीआई में कुछ संबंधित कार्य हैं: उदा। Py_GetProgramName। लेकिन ऐसा लगता है कि यह कहीं भी पाइथन दुनिया से अवगत नहीं है। Py_GetProgramFullPath argv [0] से काम करता है लेकिन मुंग्स इसे पाइथन दुभाषिया के लिए पथ प्राप्त करने का प्रयास करता है। (यह मान sys.executable के लिए प्रचारित है, ताकि चर या तो सही न हो।) क्या मुझे यह मान प्राप्त करने के लिए वास्तव में एक सी मॉड्यूल लिखना है?
संपादित करें: भी पूछा है (लेकिन काम आते हुए उत्तर नहीं) here।
यह एक बश बग नहीं है, 'exec' कमांड किसी अन्य प्रोग्राम के साथ खोल को प्रतिस्थापित करता है। – interjay
ओह, कुटिल। अगर मुझे पोर्टेबिलिटी के मुद्दे थे तो मुझे आश्चर्य नहीं होगा लेकिन यह मेरे लिए अच्छा है। – pkgw
@interjay मैं देखता हूँ, धन्यवाद! – vz0