gpt4 book ai didi

python - 从不同的路径调用 python 脚本并更改路径

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:14 25 4
gpt4 key购买 nike

我有一个 python 脚本:我的脚本.py我想从不同目录中的另一个脚本 ma​​in.py 调用。

我是这样做的:

/home/path/to/my/main/script/main.py

import subprocess

def call_script():
path_to_python = '/home/path/to/another/script/my_script.py'
subprocess.call(["python", path_to_python])

/home/path/to/another/script/my_script.py

do_some_work('log_files/logs.log')

我收到以下错误:

File "/usr/lib/python3.5/logging/__init__.py", line 1037, in _open
return open(self.baseFilename, self.mode, encoding=self.encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/home/path/to/my/main/script/log_files/logs.log'

我看到被调用的脚本使用原始脚本位置的路径作为其基本路径。
我怎样才能让 my_script.py 使用它自己的路径?我不想打开一个新的 shell。

最佳答案

在你的 my_script.py 中执行一个 os.chdir()

CWD(当前工作目录)继承自父进程。因此,由于您是从主脚本的位置运行脚本,因此子进程的 CWD 仍设置为 /path/to/main.py

如果您执行 os.chdir('/path/to/my_script.py'),您的 CWD 将更改为 my_script.py 的目录

或者,等效地,您也可以在脚本中使用日志文件的绝对路径。

关于python - 从不同的路径调用 python 脚本并更改路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55957176/

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