2013-05-10 96 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