2017-10-09 2 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 

を入力します。これはフィトンでできますか?手伝って頂けますか?

----------------------------------------編集--- -------------------------------

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の方法です。

EDIT:ファイルが実際に存在するかどうかを確認したり、ファイルのリストを指定したりする場合は、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に2回キャストし、意味のない中間変数を使用しないでください。

+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

私は私の答えに完全な解決策を追加しました。私はあなたが言及した2つのモジュールについてのドキュメントを読んでみたいと確信しています。 – NichtJens

関連する問題