我的python腳本被稱爲dlimage
。我想結合一個if語句和一個for循環。在終端中,我希望能夠輸入python dlimage 1 2 3
,它只下載1個圖像。否則,如果num3的變量是空的,並且我輸入python dlimage 1 2
它將通過使用for循環for num3 in range(01,50):
下載50個圖像。如何使if語句和for循環爲空變量工作
當我運行python dlimage 1 2
錯誤:
Traceback (most recent call last):
File "dlimage.py", line 4, in <module>
if not num3:
NameError: name 'num3' is undefined
如何定義它,因爲NUM3已經在解析器和下面的網址?我也不完全確定我的代碼是正確的。這裏有什麼問題?
我的代碼:
import urllib
import argparse
if not num3:
for num3 in range(01,50):
def download_web_image(url):
IMAGE = url.rsplit('/',1)[1]
urllib.urlretrieve(url, IMAGE)
parser = argparse.ArgumentParser()
parser.add_argument("num1")
parser.add_argument("num2")
parser.add_argument("num3")
args = parser.parse_args()
download_web_image("https://www.example.com/{num1}/{num2}/{num3}.jpg".format(num1=args.num1, num2=args.num2, num3=args.num3))
else:
def download_web_image(url):
IMAGE = url.rsplit('/',1)[1]
urllib.urlretrieve(url, IMAGE)
parser = argparse.ArgumentParser()
parser.add_argument("num1")
parser.add_argument("num2")
parser.add_argument("num3")
args = parser.parse_args()
download_web_image("https://www.example.com/{num1}/{num2}/{num3}.jpg".format(num1=args.num1, num2=args.num2, num3=args.num3))
UPDATE:現在正在工作。感謝你的幫助。
在這個程序中執行的第一行是'if not num3'。此時沒有定義「num3」。因此錯誤。我真的不確定你還在期待什麼。 – deceze
將它的默認值設置爲某些內容,也許是'None'? –
解析器塊解析器= argparse.ArgumentParser()'直到'args = parser.parse_args()'必須在調用'if not num3:'之前,我認爲,而不是num3它必須是'如果不是args.num3'。不應該嗎? –