是否可以指定上一个目录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'
。问题是我不明白如何移回目录。
谢谢。
【问题讨论】:
忙,无法完整回复。但是您正在寻找的是subprocess
和subprocess.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?的主要内容,如果未能解决你的问题,请参考以下文章