【问题标题】:backslash issue running .exe file运行.exe文件的反斜杠问题
【发布时间】:2014-05-22 20:06:53
【问题描述】:

我用python做了一个非常非常简单的脚本:

import os


path = str(os.getcwd())+'\\'+'INSTALLER PYTHON'+'\\'+'python-2.7.6.msi'
os.startfile(path)

然后,我制作了一个 .exe 文件,当我尝试在 windows 中运行它时,我得到了这个错误:

Traceback <most recent call last>:
    File"<string>", line 12, in <module>
WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Users\\Desktop\\TestFolder\\INSTALLER PYTON\\python-2.7.6.msi'

但是....在 Spyder 中,如果我这样做:

import os


path = str(os.getcwd())+'\\'+'INSTALLER PYTHON'+'\\'+'python-2.7.6.msi'
print path
#os.startfile(path)

我得到了很好的输出:

'C:\Users\Desktop\TestFolder\INSTALLER PYTON\python-2.7.6.msi'

这正是我想要的......

反斜杠和双反斜杠有什么问题?

【问题讨论】:

  • 您是否注意到文件夹名称中也有拼写错误? INSTALLER PYTON
  • 这里是我写的错误,对不起,脚本是正确的,我检查了
  • 你也可以看看os.path.join。在你的情况下path = os.path.join(os.getcwd(), 'INSTALLERPYTHON', 'python-2.7.6.msi')。这将根据操作系统智能地加入添加/或`\`的字符​​串。
  • 很好,我不知道,谢谢!!

标签: python windows backslash spyder


【解决方案1】:

使用子流程

import subprocess

subprocess.call([path,arguments1,arguments2,arguments3,...])

请注意,参数是optional。如果您的可执行文件需要/接受commandline 参数作为输入,您可以在参数字段中传递它们。

欲了解更多信息:DOCS

您也可以使用os.system(),但首选子进程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2013-02-15
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多