运行带有数据的python.py文件

时间:2017-10-09 19:57:17

标签: python python-3.x

此代码允许您调整名称" lena-gray.png"在同一个文件夹中。

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

2 个答案:

答案 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,你也不应该使用毫无意义的中间变量。

答案 1 :(得分:-1)

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

您应该在脚本中使用上面的代码片段。