gpt4 book ai didi

Python os 模块用相对路径打开当前目录上方的文件

转载 作者:太空狗 更新时间:2023-10-29 16:59:42 26 4
gpt4 key购买 nike

OS 模块的文档似乎没有关于如何在没有完整路径的情况下打开不在子目录或脚本运行的当前目录中的文件的信息。我的目录结构如下所示。

/home/matt/project/dir1/cgi-bin/script.py
/home/matt/project/fileIwantToOpen.txt

open("../../fileIwantToOpen.txt","r")

给出一个找不到文件的错误。但是,如果我在 cgi-bin 目录中启动 python 解释器并尝试 open("../../fileIwantToOpen.txt","r") 它会起作用。出于明显的可移植性原因,我不想在完整路径中进行硬编码。 OS 模块中是否有一组方法可以做到这一点?

最佳答案

open 的路径应该相对于当前工作目录,即运行脚本的目录。所以上面的例子只有在你从 cgi-bin 目录运行时才有效。

一个简单的解决方案是使您的路径相对于脚本。一种可能的解决方案。

from os import path

basepath = path.dirname(__file__)
filepath = path.abspath(path.join(basepath, "..", "..", "fileIwantToOpen.txt"))
f = open(filepath, "r")

这样您将获得您正在运行的脚本的路径(基本路径)并将其与您要打开的文件的相对路径连接起来。 os.path 将处理加入两条路径的细节。

关于Python os 模块用相对路径打开当前目录上方的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com