2017-10-09 21 views
0

該代碼允許您調整和查看同一文件夾中名爲「lena-gray.png」的文件。運行帶有數據的python.py文件

from PIL import Image 

jpgfile = Image.open("lena-gray.png") 

high = input("Genişliğini giriniz : ") 
wid = input("Yüksekliğini giriniz : "); 

out = jpgfile.resize((int(high), int(wid))) 

out.show() 

但不是一步輸入這些值的步驟,我想進入

$ python mywork.py lena-gray.png 50 100 

所以,我要運行它,而無需打開該文件,並查看結果。這可以在Phyton上完成嗎?你可以幫我嗎?

----------------------------------------編輯--- -------------------------------

I updated my code like down. 

import sys 
from PIL import Image 

firstarg = str(sys.argv[1]) 
secondarg = int(sys.argv[2]) 
thirdarg = int(sys.argv[3]) 

jpgfile = Image.open(firstarg) 

yuks = secondarg 

gen = thirdarg 

out = jpgfile.resize((int(yuks), int(gen))) 

out.show() 

enter image description here

而且我的代碼工作!

enter image description here

+0

您可能想要更新該問題。這個問題與圖像處理或算法無關...... – NichtJens

+0

那麼,標籤只是一個例子。標題也完全關閉。你在Python中詢問命令行參數。什麼是「數據」應該是什麼? – NichtJens

+0

我解決了!我會編輯我的答案。這並不難。 –

回答

1

你想看看argparse

這是處理命令行參數的標準Python方法。

編輯:如果你想檢查文件是否實際存在或允許給出文件列表,請查看glob

EDIT2:這應該這樣做:

import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument("filename", help="an image file", type=str) 
parser.add_argument("width", help="display width", type=int) 
parser.add_argument("height", help="display height", type=int) 
clargs = parser.parse_args() 


from PIL import Image 

jpgfile = Image.open(clargs.filename) 
out = jpgfile.resize(clargs.height, clargs.width) 
out.show() 

EDIT3:如果你真的想根據@tendstoZero答案它做的,這應該是正確的:

import sys 

filename = sys.argv[1] 
height = int(sys.argv[2]) 
width = int(sys.argv[3]) 


from PIL import Image 

jpgfile = Image.open(filename) 
out = jpgfile.resize(height, width) 
out.show() 

你不應該投到int兩次,你不應該使用無意義的中間變量。

+0

我用Image和sys解決,我用sys.argv []。感謝您的回答! –

+0

那麼,我已經試着解釋爲什麼你不應該使用'sys.argv' ...最後一個原因,我的答案嘗試'python script.py -h'。 – NichtJens

-1
import sys 
firstarg=sys.argv[1] 
secondarg=sys.argv[2] 
thirdarg=sys.argv[3] 
sys.argv[0] should be the script name . 

你應該在腳本中使用類似上面的代碼片段。

+0

當然。這也是可能的。但是如果參數是有效的,它沒有內置的檢查,所以,argparse肯定是更好的選擇。 – NichtJens

+0

我想找到答案,但我的問題如此重要。所以我必須儘快找到我的答案。你想幫助編輯我的代碼嗎? –

+0

我爲我的答案添加了完整的解決方案。我仍然確定你想閱讀關於我提到的兩個模塊的文檔。 – NichtJens

相關問題