python - 是否可以维护我之前更改的python工作目录
问题描述
我知道如何通过 os.chdir(Path) 更改工作目录。但我想维护我之前更改的工作目录。是否可以???
解决方案
没有。这是操作系统的问题:Python 子进程正在更改其工作目录,但这不会影响其父进程(例如您从中启动它的 Bash shell)。
如果 Python 进程旨在更改您的目录 - 假设您正在编写自己的改进cd
程序 - 您可以执行以下操作:
- 让您的程序打印要更改为的目录的名称
- 让您的 shell 本身更改为程序的输出
例如,假设您有一个 Python 程序,例如:
#!/usr/bin/env python
print('/tmp/pancakes')
你可以这样从你的 shell 运行它:
$ pwd
/tmp
$ cd $(python mycd.py)
$ pwd
/tmp/pancakes
看?现在您已更改到新目录!或者,您可以创建一个方便的别名,例如:
$ pwd
/tmp
$ alias mycd='cd $(python mycd.py)'
$ mycd
$ pwd
/tmp/pancakes
这样您就不必每次都记住语法。但实际上,没有一些可怕的特定于平台的恶作剧(例如:以编程方式更改进程的当前工作目录),但如果你重视你的理智,相信我,你真的不想走那条路。你最好学习如何在你的操作系统的进程模型中工作,即使它感觉很不稳定,也比试图解决它要好得多。
编辑:自发布以来,您已经添加了一些明确的答案,这确实改变了您的要求。这可能会更容易一些,但我仍然强烈建议你不要走这条路。
推荐阅读
- vb.net - 从数据库接收数据时如何设置Listview
- html - 幻灯片和宣传区之间的巨大差距 - HTML/CSS
- matplotlib - Matplotlib:绘制与点相关的颜色的三角形
- python - 逻辑错误,应用程序未显示它们周围的矩形。当一个处于活动状态时,它也在使用所有框输入
- linux - 无法使用 AWS CloudWatch EC2 linux 在 CloudWatch 中检索日志组
- java - 接下来如何在扫描仪之间打印文本?
- c# - 将 RSI 从 pinescript 转换为 C#?
- c - 如何通过标头中的宏定义控制makefile的行为?
- firebase - 检查用户是否使用 Google 或 Facebook 登录
- python - Create a column which elements are dictionaries which values are based in another columns of the dataframe