【问题标题】:Python returns error, but Command Line doesn'tPython 返回错误,但命令行不返回
【发布时间】:2021-02-26 07:57:08
【问题描述】:

我正在尝试使用此命令获取所有正在运行的进程

wmic /output:C:\\ProcessList.txt process get caption

当我在 cmd 中运行它时,它可以工作并将所有内容输出到指定的文件。

当我尝试使用 Python 运行它时,我收到一条错误消息:

Invalid file name.

我尝试使用 os.system 和 subprocess.call 运行它,但都返回错误。

os.system('wmic /output:C:\\ProcessList.txt process get caption')
subprocess.call('wmic /output:C:\\ProcessList.txt process get caption')

我也尝试过使用原始字符串。

os.system(r'wmic /output:C:\ProcessList.txt process get caption')
subprocess.call(r'wmic /output:C:\ProcessList.txt process get caption')

但到目前为止没有任何效果。

【问题讨论】:

    标签: python python-3.x command-line subprocess python-os


    【解决方案1】:

    Python 将 \\ 读取为 \,所以你要做的是:

    os.system('wmic /output:C:\\\\ProcessList.txt process get caption')
    

    【讨论】:

    • 不能解决问题。还是同样的错误。但我不认为你写的东西是正确的,因为它会将C:\\ProcessList.txt 输入cmd,但它应该输入C:\ProcessList.txt
    • 你确定输出之前的 / 应该是 \ 吗?我很确定你混合了反斜杠是这里的问题。尝试: os.system('wmic \\output:C:\\ProcessList.txt 进程获取标题')
    • 别人帮我找到了答案。语法是正确的,但这是一个权限问题。如果你有兴趣,请查看我自己的答案。再过 2 天我无法将其标记为正确,所以这就是为什么这个问题仍然悬而未决。
    【解决方案2】:

    如您所见,您在命令提示符中使用了 2 个反斜杠。因此,为了使路径在 python 中工作,您需要 4 个反斜杠。原因是反斜杠 (\) 是字符串中的特殊字符。因此,为了使用单个反斜杠字符,您必须转义反斜杠,这是通过将 2 个反斜杠背靠背来完成的,如下所示:\\。您还可以使用原始字符串,它只是一个以“r”(r'...')为前缀的字符串,它会自动转义所有反斜杠。

    因此,您可以使用以下方法之一:

    • 使用原始字符串(自动转义反斜杠):

      r'wmic /output:C:\\ProcessList.txt process get caption'
      
    • 手动转义反斜杠(4 个反斜杠):

      'wmic /output:C:\\\\ProcessList.txt process get caption'
      

    【讨论】:

    • 其他人给了我这个作为答案,但它没有用。 Cmd 应该得到 C:\ProcessList.txt 而不是 C:\\ProcessList.txt
    【解决方案3】:

    @Carcigenicate

    帮助我找到了答案。他回答的代码给了我真正的错误。我的代码给了我Invalid file name. 他的代码返回:Permission denied: C\\ProcessList.txt。所以这是一个权限问题。我刚刚以管理员权限运行了我的 IDE,它工作正常。

    为了避免一直在管理员模式下运行我的 IDE,我只是将文件隐藏在 Documents 中,因此我不需要管理员权限即可访问它。

    【讨论】:

      猜你喜欢
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多