python中的os.system命令读取wifi名称不正确

时间:2017-05-31 15:20:22

标签: python string os.system

不是100%这篇文章的标题。这是一个非常简单的问题

首先我跑了:

os.system("netsh interface show interface")

想通了我的无线网络被称为“Wi-Fi 2”

然后我想制作两个简单的功能来打开和关闭

import os 

def enable():
    os.system("netsh interface set interface 'Wi-Fi 2' enabled")
def disable():
    os.system("netsh interface set interface 'Wi-Fi 2' disabled")

还尝试了一些其他方式,如

interface "+"Wi-Fi 2"+" disabled")

当我调用disable但它给了我这个错误:

2 is not an acceptable value for admin.
The parameter is incorrect.

它正在读取2作为一个单独的参数(通过尝试Wi-Fi 3确认,它表示3不是可接受的值)。

我不是以某种方式正确地做这个字符串吗?不知道为什么会发生这种情况,我宁愿不必重命名Wifi,因为这只是一个糟糕的工作而不是理解问题并修复它。

由于

1 个答案:

答案 0 :(得分:1)

Win cmd shell中(虽然不限于 Win ), SPACE ASCII 0x20 32 ))是一个分隔符(或者:其中之一),这意味着在遇到 SPACE时解析一系列字符,之前的内容将被视为一个令牌,而之后的内容将被视为另一个令牌(依此类推)。

reverse (如果你愿意)是 dblquote ASCII 0x22 < / em>( 34 )):2个这样的字符之间包含的内容将被视为一个标记,无论它是否包含 SPACE

这适用于:

  • 文件路径(这就是为什么dir c:\Program Files失败,而dir "c:\Program Files"工作的原因 - 后者应该被使用)
  • 命令参数(这里也是一样)

这是从 OS 的角度来看需要做的事情,我们仍然需要处理 Python 字符串(包装所有这些)。它可以通过以下两种方式完成:[Python]: String literals

  • 通过 bkslash 转义 \ ASCII 0x5C (< em> 92 )),因为该字符串也被 dblquote 包围:os.system("netsh interface set interface \"Wi-Fi 2\" enabled")
  • 使用单引号' ASCII 0x27 39 ) )包含字符串:os.system('netsh interface set interface "Wi-Fi 2" enabled')
相关问题