【问题标题】:Python subprocess.call can't open Notepad.exe?Python subprocess.call 打不开 Notepad.exe?
【发布时间】:2019-12-05 19:47:50
【问题描述】:
import subprocess

subprocess.call(['C:\Windows\System32\notepad.exe'])

导致错误:

Traceback(最近一次调用最后一次):文件“C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver_sandbox.py",第 3 行,在 在调用中传递文件“c:\Python27\Lib\subprocess.py”,第 172 行 return Popen(*popenargs, **kwargs).wait() 文件“c:\Python27\Lib\subprocess.py”,第 408 行,在 init errread, errwrite) 文件“c:\Python27\Lib\subprocess.py”,第 663 行,在 _execute_child startupinfo) WindowsError: [错误 2] 系统找不到指定的文件

但我可以使用文件夹窗口文件名栏中的确切路径运行记事本。我错过了什么?

【问题讨论】:

  • 那个字符串中间有一个换行符!将其指定为原始字符串:r'C:\...',这样反斜杠就不会被赋予任何特殊含义。
  • 只要使用'notepad'作为cmd和'shell=True'

标签: python subprocess


【解决方案1】:

问题是路径中未转义的反冲。 Python 将 '\n' 解释为单个换行符。

转义反斜杠:

'C:\\Windows\\System32\\notepad.exe'

或者(首选)使用带有r前缀的原始字符串

r'C:\Windows\System32\notepad.exe'

【讨论】:

    【解决方案2】:

    这是可能对您有用的代码 subprocess.Popen(['C:\\Windows\\System32\\notepad.exe'])

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 2014-05-18
      • 2012-09-13
      • 1970-01-01
      • 2017-09-24
      • 2017-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多