簡體   English   中英

通過終端將參數傳遞給python腳本

[英]Passing arguments to python script via terminal

我有這個python腳本,現在我從腳本本身中的給定路徑打開圖像,我需要的是一種動態方式將圖像傳遞給腳本。

例如: python pixel.py 9tiff ,我將使用外殼程序exec從php運行此代碼,並且每次都需要傳遞不同的圖像,因此我無法將圖像名稱硬編碼到腳本本身中

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使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM