[Tutor] sys.argv[1: ] help
Smith, Jeff
jsmith at medplus.com
Mon Feb 28 18:57:30 CET 2005
Richard,
I have no problems running your example. It would be helpful in the
future ot let us know which version and variant of Python you are
running. I am using the canonical (as oppose to ActiveState) Python
2.4.
>From the command prompt, type
assoc .py
and you should see
.py=Python.File
Then type
ftype Python.File
which should return
Python.File="C:\Python24\python.exe" "%1" %*
If the last one isn't correct (with approriate path and assoc type
associations) then you can correct it with
ftype ASSOCTYPE=PATHSTUFF
As an added bonus, you can also create a system environment variable
called PATHEXT and set it to .py and you won't even have to type the .py
to execute the script. I added all the following to my PATHEXT:
.py;.pyw;.pys;.pyo;.pyc
While you're at it, you should also check the assoc/ftype for .pyw as
.pyw=Python.NoConFile
Python.NoConFile="C:\Python24\pythonw.exe" "%1" %*
Good luck,
Jeff
-----Original Message-----
From: Richard gelling [mailto:uselinux34 at yahoo.co.uk]
Sent: Sunday, February 27, 2005 1:41 PM
To: tutor at python.org
Subject: Re: [Tutor] sys.argv[1: ] help
Hi,
It is actually associated with just 'python', changed it to associate
with 'pythonw' and I got nothing on the same example not even the [], so
I am assuming that 'python' is the correct one?
Liam Clarke wrote:
>Yeah, right click on a .py and check if it's associated with pythonw or
>python.exe
>
>GL,
>
>Liam Clarke
>
>
>On Sun, 27 Feb 2005 18:28:18 +0000, Richard gelling
><uselinux34 at yahoo.co.uk> wrote:
>
>
>>Hi,
>>Yes, I use both Wndows XP and Linux( at work ) . I left that in by
>>mistake I am actually just typing in
>>
>>arg1,py a b c
>>
>>at the windows XP command prompt
>>
>>Sorry for the confusion.
>>
>>
>>Liam Clarke wrote:
>>
>>
>>
>>>Are you using XP still? I've never seen this before -
>>>
>>>
>>>
>>>
>>>>./arg1.py a b c
>>>>
>>>>
>>>>
>>>>
>>>But anyhoo, I tried out just
>>>'c:\python23\foo.py'
>>>as opposed to
>>>'c:\python23\python foo.py' and
>>>while foo.py will run, it doesn't echo to the console, as on my
>>>machine running a .py file runs it through pythonw.exe - I'd check it
>>>out for your machine, it's probably the same. You'd need to change
>>>the association to python.exe, but that would mean that you always
>>>got a DOS box for every Python script you ran, which is annoying with
>>>GUIs.
>>>
>>>Erm, if you don't want to type in python each time, either change the
>>>association or create a batch file called x or a or something that
>>>runs Python and stick it in a directory that's in your PATH system
>>>variable. Only problem with that is passing command line
>>>variables....
>>>
>>>...might just be better to type python....
>>>
>>>Good Luck,
>>>
>>>Liam Clarke
>>>
>>>On Sun, 27 Feb 2005 17:55:54 +0000, Richard gelling
>>><uselinux34 at yahoo.co.uk> wrote:
>>>
>>>
>>>
>>>
>>>>Hi,
>>>>
>>>>No What I get if I was to type in
>>>>./arg1.py a b c
>>>>
>>>>All I get is
>>>>[]
>>>>
>>>>If i type at the command prompt
>>>>
>>>>python arg1.py a b c
>>>>
>>>>I get ['a','b','c'] as expected
>>>>
>>>>All the other programs and examples I have typed in work fine just
>>>>by typing in the file name, I don't have to preced the file name
>>>>with python, only this example. I hope this makes it clearer
>>>>
>>>>Richard G.
>>>>
>>>>
>>>>Nick Lunt wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>Richard,
>>>>>
>>>>>if you try to print sys.argv[1:] when sys.argv only contain
>>>>>sys.argv[0] then you are bound to get an empty list returned, [] .
>>>>>
>>>>>Im not sure I understand the problem you think you've got but
>>>>>here's what happens with sys.argv for me, and it's correct.
>>>>>
>>>>>[argl.py]
>>>>>
>>>>>$ cat argl.py
>>>>>#!/usr/bin/python
>>>>>
>>>>>import sys
>>>>>print sys.argv[1:]
>>>>>
>>>>>
>>>>>./argl.py
>>>>>[]
>>>>>
>>>>>./argl.py a b c
>>>>>['a', 'b', 'c']
>>>>>
>>>>>Is that what your getting ?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Sorry for the late response, I tried all of the the suggestions,
>>>>>>including correcting my typo of print sys[1:] and tried print
>>>>>>sys,argv[1:], this does now work as long as I run 'python test.py
>>>>>>fred joe' it returns all the arguments. If I try just test.py all
>>>>>>I get is '[]' . Is there something wrong with my environmental
>>>>>>variables in Windows XP, I would like to be able to just use the
>>>>>>file name rather than having to type python each time. Any help
>>>>>>would be gratefully received.
>>>>>>
>>>>>>Richard G. _______________________________________________
More information about the Tutor
mailing list