Python os.startfile无法找到FIle

时间:2016-07-03 22:23:37

标签: python windows path startup os.system

我遇到了Python编程问题。在我的程序中,我使用Script: C:\Users\Personal Name\Desktop\Program\Files\Volume\Volume Max\Volume Max.vbs Line: 3 Token: 1 Error: Can't find the file. Code: 80070002 Source (null) 来启动一个程序,但它不会让我。

当我的程序执行启动文件的命令时,我在Windows脚本宿主中收到以下错误:

import socket
import time
import os

host = '192.168.56.1'
port = 5000

clients = []

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
s.setblocking(0)

quitting = False
print ("Server Started")

while not quitting:
        try:
                data, addr = s.recvfrom(1024)
                if ("Quit") in str(data):
                    quitting = True

                print (time.ctime(time.time()) + str(addr) + str(data))

                if "Volume Max" in data:
                        print ("Volume Max")
                        os.startfile('C:\\Users\\wbe0719\\Desktop\\Program\\Files\\Volume\\Volume Max\\Volume Max.vbs')

        except:
                pass
s.close()

我的文件确切位于路径的位置,并且名称拼写正确。我经过双重检查。我删除了文件名的空格,我查找了我没有成功的错误代码,因为Windows对其他Windows文件有相同的错误。

现在我可能出错了,这不是Python错误,但我想是的。

代码:

{{1}}

2 个答案:

答案 0 :(得分:1)

文本中的反斜杠可能导致下一个字符被解释为特殊字符而不是其实际值。

例如,\n是换行符,\b是退格符。

有三种方法可以解决这个问题:

  1. 在路径中使用正斜杠而不是反斜杠。 DOS / Windows仍会识别它们。

  2. 使用原始字符串,它将内容与输入完全一致。为此,请在字符串前加上字母“r”,如下所示:

    raw_path = r'\b'

  3. 使用另一个反斜杠转义每个反斜杠,如下所示:

    escaped_path = 'C:\\Users\\Personal Name\\Desktop\\...'

答案 1 :(得分:0)

解决:

我解决了!

解释它的简短方法:我将Volume Max.vbs文件移动到python脚本所在的文件夹,并且只是在os.start文件中打开了没有任何路径的Volume Max.vbs脚本。像这样:os.startfile(Volume Max.vbs)