簡體   English   中英

Python腳本運行Bash命令

[英]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.

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