使用os.startfile时找不到文件

时间:2018-01-17 07:23:42

标签: python windows

import os # Tuo os moduuli

print("Valitse suoritettava luokka:"); #Tulosta...
print("1 = Kertolasku");
print("2 = Osamaara");
print("3 = Vertailu");
print("4 = Floydin kolmio");
print("5 = Kertotaulu");
print("6 = Viikonpaiva");
print("7 = Rivit");

v = int(input("Valitse:")) # v = seuraava numero

if v == 1: # jos v on yhtäkuin 1 niin avaa...
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x01.bat')

if v == 2:
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x02.bat')

if v == 3:
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x03.bat')

if v == 4:
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x04.bat')

if v == 5:
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x05.bat')

if v == 21:
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x06.bat') #Secret

if v == 1942: 
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x07.bat') #Secret

if v == 6: 
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x08.bat')

if v == 7: 
os.startfile(r'%USERPROFILE%\Desktop\JAVA\BATCH\x09.bat')

else: # muutoin tulosta...
print ("VIRHE - Onko syötetty luku 1-5? Onko JAVA kansio sijainnissa %USERPROFILE%\Desktop ?");
print ("VIRHE - Onko Java asennettu? Onko OS = Windows?");
print ("VIRHE - Onko Java:n path variable asetettu oikein?");

input('Paina ENTER sammuttaaksesi...') #Lisää sulkeva komento.

此代码返回以下错误: Error message

  1. 我检查过名为x01.bat的文件存在于:%USERPROFILE%\ Desktop \ JAVA \ BATCH
  2. 我尝试用/替换\,但是Windows无法识别/作为访问目录的方式。
  3. 我试图用另一个反斜杠来逃避反斜杠。它只使用三个反斜杠而不是2来产生相同的错误。(是的,在我使用反斜杠转义反斜杠之前删除了r。)
  4. 我甚至试图在反斜杠之前用反斜杠转义反斜杠,但错误与反斜杠相同。
  5. 判决:似乎Windows 10上的Python 3.6想要在反斜杠之前添加反斜杠,无论我做什么。因为窗口不知道.bat文件在哪里。

    感谢任何帮助,请分享您的想法!

1 个答案:

答案 0 :(得分:0)

为了在python中构造路径,通常更容易使用os.path.join

类似

os.startfile(os.path.join(os.environ['USERPROFILE'], 'Desktop', 'JAVA', 'BATCH', 'x01.bat'))