来自根路径的Python文件问题

来自根路径的Python文件问题

我有一个经过充分测试并且可以正常工作的脚本。我遇到了一个问题,当我尝试运行它时/root/backup/script.py,或者~/backup/script.py当它运行并查找从脚本内调用的其他文件时,我从脚本中收到文件未找到错误。它可以在其他机器上工作,但设置是相同的,如果我在我的主目录中运行python backup/script.py或直接运行它,python script.py它就可以工作。它试图获取的文件与 script.py 位于同一目录中,所以我看不出出了什么问题。它可以获取脚本调用的第一个文件,但无法获取该文件。

我认为这可能是某种路径问题,因为如果以相同的方式完成,它也适用于其他系统。

编辑

阅读第一条评论后,我发布了正在崩溃的代码片段,并意识到第一个文件也没有被发现,就像我说的,对代码中的错误感到抱歉。正如我上面所说,它可以在其他位置工作,但不能在我提到的两个位置工作。

storage = Storage("user_creds.dat")
credentials = storage.get()
if credentials is None or credentials.invalid:
        credentials = run_flow(flow_from_clientsecrets("client_secrets.json", OAUTH_SCOPE, ), storage, fla$

答案1

文件未找到错误可能是由于您从不同的目录启动脚本所致。

storage = Storage("user_creds.dat")

只会发现user_creds.dat脚本是否启动该目录,例如

]$ pwd
~/backup
]$ python script.py

如果您需要能够从任何地方启动脚本,您可以指定user_creds.dat.或者,您可以使用以下命令来获取脚本所在的目录:

os.path.dirname(os.path.realpath(__file__))

然后你可以通过以下方式获取你的存储对象

os.path.join(os.path.dirname(os.path.realpath(__file__)), 'user_creds.dat')

相关内容