通过终端将参数传递给 python 脚本
Passing arguments to python script via terminal
我有这个 python 脚本,我现在从脚本本身的给定路径打开图像,我需要的是将图像传递给脚本的动态方式。
例如:python pixel.py 9tiff
,我将 运行 来自 php 的 shell exec,我每次都需要传递不同的图像,所以我可以不要将图像名称硬编码到脚本本身
import os, sys
import Image
im = Image.open('/www/test/tiffFiles/9.tiff')
rgb_im = im.convert('RGB')
r0, g0, b0 = rgb_im.getpixel((20, 20))
r1, g1, b1 = rgb_im.getpixel((40, 40))
r2, g2, b2 = rgb_im.getpixel((60, 60))
print(r0, g0, b0)
print(r1, g1, b1)
print(r2, g2, b2)
那里有很多类似的问题,但如果您想要一个简单的解决方案,请使用 sys.argv
import sys
print "This is the name of the script: ", sys.argv[0]
print "Number of arguments: ", len(sys.argv)
print "The arguments are: " , str(sys.argv)
但最好的总是argparse
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
解析 python 中的命令行参数非常简单。您可以将脚本更改为如下:
import sys
import Image
if __name__ =='__main__':
im = Image.open(str(sys.argv[1]))
rgb_im = im.convert('RGB')
r0, g0, b0 = rgb_im.getpixel((20, 20))
r1, g1, b1 = rgb_im.getpixel((40, 40))
r2, g2, b2 = rgb_im.getpixel((60, 60))
print(r0, g0, b0)
print(r1, g1, b1)
print(r2, g2, b2)
在 Python 中,argv[0] 变量始终保留用于 python 脚本的名称。 python myScript.py 9tiff
这里 argv[0]
由 myScript.py 持有,argv[1]
由 9tiff[ 使用=14=]
我有这个 python 脚本,我现在从脚本本身的给定路径打开图像,我需要的是将图像传递给脚本的动态方式。
例如:python pixel.py 9tiff
,我将 运行 来自 php 的 shell exec,我每次都需要传递不同的图像,所以我可以不要将图像名称硬编码到脚本本身
import os, sys
import Image
im = Image.open('/www/test/tiffFiles/9.tiff')
rgb_im = im.convert('RGB')
r0, g0, b0 = rgb_im.getpixel((20, 20))
r1, g1, b1 = rgb_im.getpixel((40, 40))
r2, g2, b2 = rgb_im.getpixel((60, 60))
print(r0, g0, b0)
print(r1, g1, b1)
print(r2, g2, b2)
那里有很多类似的问题,但如果您想要一个简单的解决方案,请使用 sys.argv
import sys
print "This is the name of the script: ", sys.argv[0]
print "Number of arguments: ", len(sys.argv)
print "The arguments are: " , str(sys.argv)
但最好的总是argparse
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
解析 python 中的命令行参数非常简单。您可以将脚本更改为如下:
import sys
import Image
if __name__ =='__main__':
im = Image.open(str(sys.argv[1]))
rgb_im = im.convert('RGB')
r0, g0, b0 = rgb_im.getpixel((20, 20))
r1, g1, b1 = rgb_im.getpixel((40, 40))
r2, g2, b2 = rgb_im.getpixel((60, 60))
print(r0, g0, b0)
print(r1, g1, b1)
print(r2, g2, b2)
在 Python 中,argv[0] 变量始终保留用于 python 脚本的名称。 python myScript.py 9tiff
这里 argv[0]
由 myScript.py 持有,argv[1]
由 9tiff[ 使用=14=]