Python 从任何目录打开文件

Python 从任何目录打开文件,python,file,file-io,operating-system,Python,File,File Io,Operating System,我正在写这段基本代码,在我的计算机上运行文件,但现在它只能从它所在的目录中打开文件。是否有一种方法可以从我的计算机上的任何位置打开文件,或者我必须给出文件的路径 这是我的密码: def run(filename): try: import os os.startfile(filename) except: WindowsError print ("Thats not a valid file name") whil

我正在写这段基本代码,在我的计算机上运行文件,但现在它只能从它所在的目录中打开文件。是否有一种方法可以从我的计算机上的任何位置打开文件,或者我必须给出文件的路径

这是我的密码:

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()

这将打开并运行文件,但只能从保存的目录中打开和运行文件。

您可以通过几种不同的方法来完成此操作

或者使用整个路径

或者更改其查看的目录

更改目录非常容易

os.chdir("PATH TO DIRECTORY")
公平警告可能很慢…

你能试试吗:

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

不清楚你想做什么。。。您想在整个计算机中搜索名为“X”的文件或其他文件吗?如果您有
“C:\A\file1.txt”
“C:\B\file1.txt”
。。。你会选择哪一个?正如@JoranBeasley指出的,如果你想打开脚本所在目录以外的目录中的文件,你必须用完整的路径限定名称。我只是想知道如果你试图访问路径上的任何程序,是否有一种方法可以访问我计算机中任何地方的文件,按照DOS提示符的方式,您可以这样做。如果您试图访问计算机上任何位置的任何文件…您必须搜索它(无论是通过遍历整棵树、询问桌面搜索还是其他方式)。仅供参考,
WindowsError
应与
位于同一行,但
除外,例如,
除了WindowsError:
这正是我想要的,我想我知道它会很慢,因为它必须搜索文件,但谢谢!
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