“cd”的最佳python包装器

2024-10-05 22:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python脚本中前后更改dir。从Bash开始,我会做cd "bla/bla"然后cd -或者pushd "bla/bla" > /dev/null然后popd。你知道吗

Python没有pushdpopd-(Shell变量)的包装器。有没有比以下更好的方法:

import os
curr_dir = os.getcwd()
os.chdir('bla/bla')
...
is.chdir(old_dir)

或者

import path # after pip install https://github.com/jaraco/path.py
with path.Path('bla/bla'):
    ...

这包括另一个非内建的依赖关系,也不是很明显,IMO

什么?你知道吗


Tags: pathdevimport脚本bashosdircd
1条回答
网友
1楼 · 发布于 2024-10-05 22:40:45

我不认为在os中有什么能做到这一点:

from os import chdir, getcwd

_stack = []

def pushd(dir):
    global _stack
    _stack.append(getcwd())
    chdir(dir)

def popd():
    chdir(_stack.pop())

在很多情况下,我更喜欢你的with Path(dir):例子。您可能是想摆脱bash,而不是复制它:)

相关问题 更多 >