2015-05-27 6 views
0

У меня есть этот код:выполнить код только при sys.argv [1] существуют

#!/usr/bin/python 

import os.path 
import sys 
if len(sys.argv)<2: 
    print"You need to specify file!" 
if (os.path.isfile(sys.argv[1])): 
    print "File <%s> exist" % sys.argv[1] 
elif (sys.argv[1] == "--help"): 
    print "Add (only)one file argument to command" 
    print "--help     print this screen" 
    print "--autor     autor name and email adress" 
    print "--about     about this program" 
elif (sys.argv[1] == "--about"): 
    print"Program to identify if the file exists" 
    print"Copyright Vojtech Horanek 2015" 
elif (sys.argv[1] == "--autor"): 
    print"Vojtech Horanek <[email protected]>" 
else: 
    print"No file <%s> found" % sys.argv[1] 

и я хочу выполнить этот кусок кода только при sys.argv [1] существует:

if (os.path.isfile(sys.argv[1])): 
    print "File <%s> exist" % sys.argv[1] 
elif (sys.argv[1] == "--help"): 
    print "Add (only)one file argument to command" 
    print "--help     print this screen" 
    print "--autor     autor name and email adress" 
    print "--about     about this program" 
elif (sys.argv[1] == "--about"): 
    print"Program to identify if the file exists" 
    print"Copyright Vojtech Horanek 2015" 
elif (sys.argv[1] == "--autor"): 
    print"Vojtech Horanek <[email protected]>" 
else: 
    print"No file <%s> found" % sys.argv[1] 

, если я только запустить программу без аргументов (питон program.py) это напечатать текст:

You need to specify file! 
Traceback (most recent call last): 
File "program.py", line 7, in <module> 
if (os.path.isfile(sys.argv[1])): 
IndexError: list index out of range 

Я попытался «, если sys.argv == 1 ", но не работает.

Любые решения? Благодаря

+0

Вы можете проверить, существует ли len (sys.args [])> 1 – The6thSense

+0

Возможно, вам лучше использовать optparse https://docs.python.org/2/library/optparse.html –

ответ

3
if len(sys.argv)<2: 
    print"You need to specify file!" 
    sys.exit() 

Теперь ваша программа будет завершена полностью, если пользователь не предоставил каких-либо аргументов, а не продолжать и вызывая исключение.