[英]Python Script To Run Bash command
我正在嘗試在Bash上運行腳本,以便將文件從本地計算機傳輸到網絡上的遠程計算機。 bash命令是:
scp \\local\\path\\ user@remoteip:\\path\\to\\copy\\onremote
到目前為止,這個工作正常,所以我想我會使用python腳本自動化它。 這就是我想出的:
import subprocess
direct = input("Enter path to directory: ")
send = "scp " + direct + " user@remoteip:\path\to\copy\onremote"
subprocess.Popen(send)
出於某種原因,它不起作用,任何想法?
這里的問題是Popen()需要一個列表。 因此解決方案是將字符串拆分為formatted = send.split(" ")
, formatted = send.split(" ")
。 根據使用Popen()或call()的問題,這里有一個很好的答案,詳細說明了這些差異。 子進程Popen和call之間的區別是什么(我該如何使用它們)?
這是一個適合我的東西,使用subprocess call()。
from subprocess import call
direct = input("Enter path to directory: ")
send = "scp" + direct + " user@remoteip:\path\to\copy\onremote"
formatted = send.split(" ")
call([formatted])
建議您將參數列表傳遞給
subprocess.Popen(["scp", "-r", "path", ...])
。
但是,如果您仍想傳入整個字符串,請傳遞一個可選的shell參數
subprocess.Popen(send, shell=True)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.