2013-05-10 143 views
0

我正在寫這個基本代碼在我的計算機上運行文件,但現在它只能從它所在的目錄中打開文件。是否有方法在我的計算機上的任何位置打開文件,或者我必須給文件的路徑。從任何目錄打開文件

這裏是我的代碼:

def run(filename): 
    try: 
     import os 
     os.startfile(filename) 
    except: 
     WindowsError 
     print ("Thats not a valid file name") 

while True: 

    filename = raw_input("Filename: ") 
    run(filename) 
    x = raw_input("Would you like to open another file? [y/n]: ") 
    if x == "n": 
     quit() 

這將打開並運行文件罰款,但只能從目錄中它保存在

+4

它不清楚你想要做什麼。 ..你想要在整個計算機上搜索名爲「X」的文件嗎?如果你有''C:\ A \ file1.txt「和'」C:\ B \ file1.txt「'......你會選擇哪一個? – 2013-05-10 21:18:53

+0

正如@JoranBeasley指出的那樣,如果你想打開目錄以外的文件而不是你的腳本所在的位置,你將不得不用完整的路徑來限定名字。 – shaktimaan 2013-05-10 21:31:16

+0

我只是想知道是否有方法可以訪問我電腦中任何地方的文件 – Serial 2013-05-10 21:37:09

回答

1
def run(filename): 
    for directoy,files,dirs in os.walk("C:\\"): 
     if filename in files: 
      return os.startfile(os.path.join(directory,filename)) 

公平的警告,可能會很慢...

+0

多數民衆贊成多多少少我想我知道它會很慢,因爲它必須搜索文件,但謝謝你! – Serial 2013-05-11 03:32:31

1

,你可以做這幾個不同的方式

要麼使用整個路徑

或更改其目錄的目錄

改變目錄是很容易

os.chdir("PATH TO DIRECTORY") 
1

你可以嘗試:

import os 
def run(filename): 
    if not os.path.exists(filename): 
     print("Thats not a valid file name") 
     return 
    if os.path.isfile(filename): 
     # Your code here 
    elif os.path.isdir(filename): 
     # Your code here