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