How to set program name in Python? ($0 in Perl)
Bengt Richter
bokr at oz.net
Thu Nov 10 17:14:32 EST 2005
On Thu, 10 Nov 2005 08:06:27 +0100, "Fredrik Lundh" <fredrik at pythonware.com> wrote:
>Steve Holden wrote:
>
>> > Is there a way to set the program name in Python, similar to $0 in
>> > Perl?
>> >
>> >>From `man perlvar`:
>> >
>> > $0 Contains the name of the program being executed. On some oper-
>> > ating systems assigning to "$0" modifies the argument
>> > area that
>> > the ps program sees. This is more useful as a way of
>> > indicat-
>> > ing the current program state than it is for hiding the
>> > program
>> > you're running. (Mnemonic: same as sh and ksh.)
>
>> import sys
>> print sys.argv[0]
>
>that *gets* the name, but assigning to sys.argv[0] doesn't *set* it (afaik).
>
>setting the name involves overwriting the C level argv array, several large
>buckets of worms, and huge portability issues, and is thus better left to non-
>standard extensions.
>
OTOH, if the intent is just to set a value for subsequent getting by way of
sys.argv[0], isn't sys.argv an ordinary list?
>>> import sys
>>> sys.argv[0]
''
>>> sys.argv[0] = '<interactive>'
>>> sys.argv[0]
'<interactive>'
>>> type(sys.argv)
<type 'list'>
Regards,
Bengt Richter
More information about the Python-list
mailing list