簡體   English   中英

將python var傳遞給bash

[英]pass python var to bash

我正在制作一個腳本來拍照並將它們寫入一個用“數據和時間”創建/命名的文件夾

我做了這個部分來創建目錄並拍照

pathtoscript = "/home/pi/python-scripts"
current_time = time.localtime()[0:6]
dirfmt = "%4d-%02d-%02d-%02d-%02d-%02d"
dirpath = os.path.join(pathtoscript , dirfmt)
dirname = dirpath % current_time[0:6] #dirname created with date and time
os.mkdir(dirname) #mkdir
pictureName = dirname + "/image%02d.jpg" #path+name of pictures

camera.capture_sequence([pictureName % i for i in range(9)])

然后我想將dirname傳遞給bash腳本(picturesToServer),它將圖片上傳到服務器。 我該怎么做?

cmd = '/home/pi/python-scripts/picturesToServer  >/dev/null 2>&1 &'
call ([cmd], shell=True)

也許我可以留在python腳本scp圖片到服務器? 我有一個帶有釋義集的ssh-agent(ssh-add mykey)。

將變量放在環境中(它將作為bash腳本中的常規bash變量提供,例如下面示例中的VAR_NAME ),將call替換為:

import subprocess    
p = subprocess.Popen(cmd, shell=True, env={"VAR_NAME": dirname})

或者將它作為位置參數傳遞(在腳本中$1形式提供),方法是將cmd替換為:

cmd = '/home/pi/python-scripts/picturesToServer >/dev/null 2>&1 "{0}" &'.format(dirname)

作為旁注,請考慮在調用子進程時使用shell = True 使用shell = True是一個壞主意,因為Python文檔中記錄了很多原因

暫無
暫無

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

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