【问题标题】:How can I run a python file that uses other folders with files, without using the computer's path?如何在不使用计算机路径的情况下运行使用其他文件夹的 python 文件?
【发布时间】:2020-04-21 04:50:02
【问题描述】:

我的目标是运行一个 python 文件,该文件使用与 python 文件位于同一文件夹中的文件夹中的文件,但与计算机的路径无关。

我现在的情况是我必须在我的代码中定义路径,例如:C:/Users/path/to/files/etc。

理想的情况是我可以创建一个包含 python 文件的主文件夹(最好是 zip 文件夹),以及包含 python 文件正在使用的文件的必要文件夹。这样我就可以将主文件夹发送给任何人,他们应该能够运行 python 文件。

我还使用 os 库中的 os.listdir(C:/path/to/folder) 函数来导入整个文件夹,但这也适用于计算机的路径。所以需要另一种选择。

有谁知道我怎么能做到这一点,或者至少可以做到这一点?

【问题讨论】:

    标签: python file directory


    【解决方案1】:

    如果我理解正确,您想在另一个文件中使用 python 脚本,该文件位于同一目录的子文件夹中。我做对了吗? 如果是,您可以将其导入为

    from <folder name> import <file name>
    

    【讨论】:

      【解决方案2】:

      你可以这样做

      import sys, os
      
      sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
      
      

      【讨论】:

        【解决方案3】:

        您可以使用它来获取当前Python文件使用abspathdirname的目录:

        this_dir = os.path.abspath(os.path.dirname(__file__))
        

        然后您可以使用join 以独立于操作系统的方式构建您的相对路径:

        some_image = os.path.join(this_dir, 'images', 'myimage.png')
        

        【讨论】:

        • 您可以使用标准库中的 sys 模块来添加路径。
        • 我是否也可以像以前那样创建文件夹路径:os.listdir(C:/path/to/folder)?
        • 而os.path.join()函数中的第二个参数是什么意思?
        • 您只需不断添加路径组件即可。因此,如果您想创建从当前目录到 \a\b\c.txt 的相对路径,您可以使用 os.path.join('a', 'b', 'c.txt')
        • 你引用的显式路径是os.path.join('c:', os.sep, 'path', 'to', 'folder')
        猜你喜欢
        • 2015-01-29
        • 1970-01-01
        • 1970-01-01
        • 2020-03-22
        • 2016-03-14
        • 2013-08-08
        • 2018-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多