【问题标题】:Opening Files From Any Directory从任何目录打开文件
【发布时间】:2013-05-05 15:35:15
【问题描述】:

我正在编写这个在我的计算机上运行文件的基本代码,但现在它只能从它所在的目录打开文件。有没有办法从我计算机上的任何地方打开文件,或者我必须提供文件的路径。

这是我的代码:

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

这会很好地打开并运行文件,但只能从其保存的目录中运行。

【问题讨论】:

  • 不清楚你想做什么......你想在整个计算机上搜索一个名为“X”的文件还是什么?如果你有"C:\A\file1.txt""C:\B\file1.txt" 怎么办……你会选择哪一个?
  • 正如@JoranBeasley 指出的那样,如果您想在脚本所在目录以外的目录中打开文件,则必须使用完整路径限定名称。
  • 我只是想知道是否有一种方法可以访问我计算机中任何位置的文件
  • 如果您尝试访问 PATH 上的任何程序,按照 DOS 提示符的方式,您可以这样做。如果您尝试访问计算机上任何位置的任何文件……您必须搜索它(无论是通过遍历整个树、通过桌面搜索还是其他方式)。
  • 仅供参考,WindowsError 应与except 在同一行,即except WindowsError:

标签: python file file-io operating-system


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

公平警告它可能会很慢......

【讨论】:

  • 这就是我想要的,我想我知道它会很慢,因为它必须搜索文件,但谢谢!
【解决方案2】:

你可以通过几种不同的方式做到这一点

要么使用完整路径

或更改其查看的目录

更改目录非常简单

os.chdir("PATH TO DIRECTORY")

【讨论】:

    【解决方案3】:

    你可以试试吗:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 2017-08-23
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      相关资源
      最近更新 更多