是否可以指定上一个目录python?

Posted

技术标签:

【中文标题】是否可以指定上一个目录python?【英文标题】:Is it possible to specify the previous directory python? 【发布时间】:2013-01-05 22:27:36 【问题描述】:

出于可扩展性和可维护性的目的,我正在尝试制作一个 Python 测试脚本模块自包含目录。

我进行了一些研究,但无法找到我正在寻找的答案。基本上,我想确定 Python 中是否有一个函数可以在 shell 中执行类似于 cd - 的操作。

我通常希望避免输入完整的路径名,并拥有相对于指定环境的所有路径。

示例: 我有我的脚本所在的主目录python-scripts,每个测试环境都有文件夹demo,每个测试环境都有一个截图文件夹demo-screenshots

如果我想使用 Python 将屏幕截图保存到屏幕截图中,在 demo 目录中工作时,我只需将其发送到以下目录:demo-screenshots,使用路径 '/demo-screenshots/example.png'。问题是我不明白如何移回目录。

谢谢。

【问题讨论】:

忙,无法完整回复。但是您正在寻找的是subprocesssubprocess.popen。将'cd -' 传递给子进程 此问题已在本站其他地方得到解答:***.com/questions/431684/how-do-i-cd-in-python 不,我了解chdir,但是您可以相对于您当前所在的目录更改它吗? (在不指定完整路径的情况下移回目录) 【参考方案1】:

您要更改工作目录? python 中的OS module 有很多函数可以帮助解决这个问题。

import os
os.chdir( path )

path".." 上一个目录。如果您需要在更改目录之前/之后检查您的位置,您可以发出getcwd() 命令:

mycwd = os.getcwd()
os.chdir("..")
#do stuff in parent directory
os.chdir(mycwd)     # go back where you came from

【讨论】:

快速提问,如何在不指定完整路径的情况下进入当前目录中的目录? @迈克 @SensulPanda - 进入当前目录?根据定义,您已经在当前目录中。 :) 但 cwd 的“捷径”是“。” os.chdir("."),但同样,由于您已经在当前目录中,我不确定这是否会有所帮助。 不是我的意思。我的意思是说我在一个名为/example/ 的目录中。该目录中有一个名为test 的文件夹。如果我想将文件写入该目录,您会假设代码看起来像 /example/test 的相对目录,但它会强制您指定完整路径。 @SensulPanda - gottcha,是的,我刚才建议的差不多,相对路径是:"./test",如果您当前的工作目录是“example”,则相当于 /<full_path_before_your_stuff>/example/test 如果你想创建相对于脚本的路径,请使用scriptdir = os.path.dirname(os.path.abspath(__file__)),否则它将相对于你的pwd,这有时是你想要的。【参考方案2】:
path = os.path.dirname(__file__)
print(path)

将打印文件的 CWD,例如 C:\Users\Test\Documents\CodeRevamp\Joke

path2 = os.path.dirname(path)
print(path2)

将打印文件的父目录:C:\Users\Test\Documents\CodeRevamp

【讨论】:

以上是关于是否可以指定上一个目录python?的主要内容,如果未能解决你的问题,请参考以下文章

利用python os模块搜索指定目录下包含指定字符的文件

如何为 popen 指定工作目录

Python 快速检测配置文件是不是变更

如何仅在指定的 XAMPP 目录上启用 SSL

Python关于文件操作的总结

python常用模块-os