繁体   English   中英

无法在python中使用cmd命令

[英]unable to use cmd command in python

我正在使用此命令在Shell脚本中查找磁盘使用情况

df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'

我想在我的python脚本中使用此命令

ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'")

但无法处理字符串文字。

我尝试按照这里的建议用\\\\替换\\

有人可以对此发表看法吗?

这是我得到的错误

ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'")
                                                                                           ^
SyntaxError: invalid syntax

您没有转义双引号,并且它们会尽早终止字符串:

ssh.exec_command("df -h | awk '$NF==\"/\"{printf \"Disk Usage: %d/%dGB (%s)\\n\", $3,$2,$5}'")

您可以使用shlex 进程尝试以下操作以准备命令字符串。

from subprocess import list2cmdline
import shlex

cmd = list2cmdline(shlex.split("""df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'"""))

ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM