gpt4 book ai didi

python - 如何将 pathlib 与子进程一起使用

转载 作者:行者123 更新时间:2023-11-30 22:00:00 24 4
gpt4 key购买 nike

我想使用相对路径和子进程模块,以便能够运行不同的可执行文件。

为了获取相对路径,在阅读不同的线程之后,我认为 pathlib 模块是最好的选择。

假设我的 python 脚本位于 Windows 的特定文件夹中。在其中(上一个文件夹)中,我还有其他文件夹,其中包含我要运行的可执行文件。这是 subprocess 模块进来的时候。但是,我不知道如何将使用 pathlib 模块创建的相对路径包含到 subprocess args 字段中。

从子进程 API 中我可以读到“args 应该是程序参数的序列或者单个字符串”。

import pathlib
import subprocess

in_file_1 = pathlib.Path.cwd() / "folder2" / "folder3" / "whatever.exe"

p = subprocess.Popen(str(in_file_1), shell = True)

我希望看到在管理员任务上运行的whatever.exe 进程,但该进程尚未启动。我怎样才能做到这一点?有什么我正在消化的吗?我应该只给出保存 python 脚本的相对路径吗?

最佳答案

您混淆了 current working directory ,这是 pathlib.Path.cwd() 返回的内容,以及脚本的位置。

如果你想要脚本的目录,你可以使用__file__,例如这样:

import pathlib

cwd = pathlib.Path.cwd()
script_file = pathlib.Path(__file__)
script_location = script_file.parent

print("The current dir is", pathlib.Path.cwd())
print("The current script is", script_file)
print("The current script's dir is", script_file.parent)

将返回:

The current dir is /home/nicoco
The current script is /tmp/so.py
The current script's dir is /tmp

关于python - 如何将 pathlib 与子进程一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438325/

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