我正在编写一个脚本以在 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/