如何将目录路径传递给 os.execvp

How to pass a directory path to os.execvp

我在从 Python 执行时尝试 change directory path of RethinkDB

此 Bash 命令正在运行:

rethinkdb --directory ~/ComeOnRethink

但是这个系统调用不起作用:

args = ("--directory ~/ComeOnRethink",) # RethinkDB directory to store data and metadata
os.execvp("rethinkdb", args)

忽略参数并使用默认路径执行RethinkDB。我该如何解决这个问题?

*这是有效的:

subprocess.Popen(['rethinkdb', '--directory', './ComeOnRethink'])

试试这个:

import os.path
args = ["rethinkdb", "--directory", os.path.expanduser("~/ComeOnRethink")]
os.execvp("rethinkdb", args) # assumes 'rethinkdb' can be found in a directory listed in the PATH environment variable

args 应该是命令行词的可迭代(由 shell 解析,包括命令名称)。

os.path.expanduser 将替换用户主目录路径参数中的 ~(这是 bash 为您所做的)。