python - 在 subprocess.check_output 中使用反斜杠

标签 python ubuntu

我正在编写一个脚本以在 Ubuntu 操作系统中使用 Python 连接到我的 wifi。以下是我的代码:

from subprocess import check_output
network = 'abcnetwork'
password = r'Pass|\|ew2017;'
output = check_output(
    ['nmcli d wifi connect {network} password {password}'.format(
        network=network, password=password)],
    shell=True
)

但是由于 \ 而出现错误:
/bin/sh: 1: |ew2017: not found
`enter code here`Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.5/subprocess.py", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['nmcli d wifi connect abcnetwork password Pass|\\|ew2017;']' returned non-zero exit status 127

我的代码中有什么错误。请帮忙。

最佳答案

将命令作为单词列表传递,而不是单个字符串(使用 shell=False ,这是默认值)。

output = check_output(['nmcli', 'd', 'wifi', 'connect', network, 'password', password])

关于python - 在 subprocess.check_output 中使用反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285283/

相关文章:

Bash 脚本 : Edit . txt 按行

Ubuntu 16.04、CUDA 8 - CUDA 驱动程序版本不足以支持 CUDA 运行时版本

java - "Class.forName("org.mariadb.jdbc.Driver ");"无法工作

python - 如何在 pandas DataFrame 中按索引仅保留一组特定行

python - 跟踪Python进程和子进程的CPU时间

Python (Windows Server) Virtualenv 无法识别 Django 已安装

c - (初学者 c GUI 程序)GTK+ 和 C 程序在显示图标时遇到问题

ubuntu - 在 ubuntu 上的 erlang 中安装用于 ssl 的种子密码?

Python绘制极坐标方程

python - 在Django中立即运行页面并返回给用户的正确方法是什么?