shell 使用组合的cd和pwd运行子进程

pb3skfrl  于 2022-11-16  发布在  Shell
关注(0)|答案(3)|浏览(158)

我在jupyter中运行subprocess来获取核心路径。我必须向上移动一个文件夹,然后调用pwd
运行中:

import subprocess
mypath=subprocess.run("(cd .. && pwd)")

将导致“没有这样的文件或目录:'(cd .. && pwd)'错误。我猜cd调用了目录调用。
你能帮我吗?

tag5nh1u

tag5nh1u1#

框架挑战:subprocess是不适合这项工作的工具。

import os.path

mypath = os.path.abspath(os.path.dirname(os.getcwd()))

...对于非UNIX操作系统来说,速度更快,而且可移植。

gk7wooem

gk7wooem2#

对于单个shell命令(其中参数未与命令分开),您需要在subprocess.run中设置shell = True

subprocess.run("cd .. && pwd", shell = True)

它会起作用的

k7fdbhmy

k7fdbhmy3#

正如其他人所提到的,这不需要子进程或shell。

import os.path
os.path.split(os.getcwd())[0]

相关问题