2015-08-25 69 views
1
subprocess.Popen(['python', downloadscript.py, "--longitude", long, "--latitude", lat, "--download_to", ],stdout=subprocess.PIPE) 

我想要得到的longitudelatitudedownload_todownloadscript.py文件如何接收

回答

0
cmd='python downloadscript.py --longitude "{lo}" --latitude "{la}" --download_to "{d}"'\ 
.format(lo=long,la=latitude,d=down_to) 
subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) 

假設你設置-arg_name arg_value的公約在python子進程可運行文件中的參數,

您可以在您的downloadscript.py文件中使用此代碼段:

import sys 
k='' 
args={} 
for a in sys.argv: 
    if a.startswith('-'): 
     k=a.replace('-','') 
     continue 
    args[k]=a 
print (args)# {longitude:'value',latitude:'value',download_to:'value'} 

如果您使用python 2.7或更高版本,則可以使用argparse模塊。

(注意,默認的Python版本很多常見的Linux發行版本的2.6.x)

0

最Python的方式在Python解析參數是模塊​​:

import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument("longitude", help="enter longitude") 
parser.add_argument("latitude", help="enter latitude") 
parser.add_argument("download_to", help="target directory") 

args = parser.parse_args() 
latitude = args.latitude 

瞭解更多關於它這裏:https://docs.python.org/2/howto/argparse.html