2011-11-01 71 views
6
import sys 

    print sys.argv[1] 

hi okumazlar Python, sys.argv

bu

çok temel görünebilir ama Python komut satırından şey okumak alınamıyor. Yukarıdaki kodu şu ve ne tip geçerli:

myfile.py helloworld 

ve hangi geri is olsun:

IndexError: list index out of range 

benim için bir kez çalışır gibiydi ama artık çalışmaz ve ben ve Python'u kaldırma ve yeniden yüklemeyi denedi ve hala çalışmıyor.

Benim soru, ben yanlış bir şey yapıyorum edilir? Ya da sadece Python'u kırdım mı? Kullanımı herhangi bir yardım

için

Teşekkür: Windows 7 Python 2.7.2

+0

Ne zaman sadece 'baskı sys.argv' olur üzere HKEY_CLASSES_ROOT \ Applications \ python26.exe \ shell \ open \ command anahtarını ayarla? Ve 'python.exe myfile.py helloworld' aracılığıyla dosyayı çağırırken, işe yarıyor mu? – poke

+0

ah, saygılarınız için teşekkürler, çalışmayı başardı. çok aptalca bir hataya sahipti, sistem değişkenleri – user1024028

+0

yoluna python eklemedi Python çağrısıyla (örneğin, 'python foo.py a' works ama foo. py 'değil,) ilk cevabı geç. senin yanıtta – eenblam

cevap

5

size python komut dosyası olduğunu düşündüğünü şekilde aradığınız emin misiniz?

#!/usr/bin/python 
import sys 

if len(sys.argv) < 2: 
    print "you did not give any arguments\n" 
else: 
    print sys.argv[1] 

döner:

$ ./foo.py 
you did not give any arguments 

$ ./foo.py hello_world 
hello_world 
$ 
+0

teşekkürler, çalışıyor başardı – user1024028

11
kayıt düzenleyicisi (regedit) başlatın

. Bu çözümün "C:\Python26\python26.exe" "%1" %*

Kaynak: http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/

+2

vay, bu kayıt defteri ihmal biz yan Python 2.7 Anaconda ve 3.4 kurulum tarafını dengelemek için çalışıyorlardı, bugün bize ısırdı. 3.4 yükleyici% * 'argüman' atlandı ama biz 'HKEY_CLASSES_ROOT \ Applications ikisi için ayarlamak için gerekli \ pythonxx.exe \' HKEY_CLASSES_ROOT \ py_auto_file \ shell \ open \ komutu için de \ open \ command' anahtarı kabuk 'anahtar – jxramos

+0

Cevabınız için teşekkürler –