gpt4 book ai didi

python - 如何修复工作目录总是在家? (Python)

转载 作者:行者123 更新时间:2023-11-28 22:06:46 26 4
gpt4 key购买 nike

这是我的第一个问题。

我的 python 脚本使用以下简单函数打开并读取当前文本文件:

open("config.ini", "r")

因为这是一个相对路径,所以它应该可以工作,因为 config.ini 与启动脚本时位于同一目录中,这应该是当前工作目录。

事实上,这在我所有的 3 个 Linux 机器上都能完美运行,但我有一个用户需要支持,因为他在打开 config.ini 时遇到错误。出现错误是因为

os.path.exists("config.ini")

即使文件存在也返回 false!

在尝试解决这个问题时,我们发现让它工作的唯一方法是将 config.ini 放在他的主目录中,尽管假定的工作目录是另一个。

此外,如果我的脚本试图在当前工作目录中创建一个文件,该文件总是在他的主目录中创建,因此我认为出于某种原因他的工作目录总是在主目录中!

我该如何解决这个问题?也许我可以引入绝对路径,但我担心 os.getcwd() 会返回主目录而不是正确的主目录。

我是否应该建议该用户以某种方式修理他的机器?

很抱歉问了这么长的问题,但英语不是我的第一语言,而且我是编码的初学者,所以解释起来有些困难。

非常感谢您! =)

最佳答案

会不会是用户正在从他的主目录执行您的脚本?

即假设脚本位于:

/home/user/test/foo/foo.py

但是用户这样调用它:

/home/user> python test/foo/foo.py

在这种情况下,脚本看到的“当前目录”是/home/user

你可以做的是通过调用这个函数找出脚本本身所在的目录:

import os

def script_dir():
return os.path.dirname(os.path.realpath(__file__))

它将始终返回脚本所在的目录,而不是可能不同的当前目录。然后,您可以安全地将配置文件存储在那里。

关于python - 如何修复工作目录总是在家? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123390/

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