实际上需要走一些路径并执行一些命令,下面是代码
代码:
import os
present_working_directory = '/home/Desktop/folder'
目前我在
folder
if some_condition == true :
change_path = "nodes/hellofolder"
os.chdir(change_path)
print os.getcwd()
if another_condition == true:
change_another_path = "nodes"
os.chdir(change_another_path)
print os.getcwd()
**Result**:
'/home/Desktop/folder/nodes/hellofolder'
python: [Errno 1] No such file or directory
实际上这里发生的事情是当我第一次使用时
os.chdir()
目录已更改为
'/home/Desktop/folder/nodes/hellofolder'
,
但对于第二个,我需要通过移动到一个文件夹来运行文件,即
'/home/Desktop/folder/nodes'
那么任何人都可以让我如何在 python 中将一个文件夹移回
就像在外壳中一样。
os.chdir("../nodes")
这是一种非常独立于平台的方法。
In [1]: os.getcwd()
Out[1]: '/Users/user/Dropbox/temp'
In [2]: os.path.normpath(os.getcwd() + os.sep + os.pardir)
Out[2]: '/Users/user/Dropbox/'
然后你就有了路径,你可以用它进行 chdir 或其他任何操作。
只需致电
os.chdir('..')
与任何其他语言相同:)
os.chdir('../')
Folder1:
sub-folder1:(you want to navigate here)
Folder2:
sub-folde2:(you are here)
要从
sub-folder1
导航到sub-folder2
,你需要这样写
“../Folder1/sub-folder1/
”
然后,放入
os.chdir("../Folder1/sub-folder1/")
。
考虑使用绝对路径
import os
pwd = '/home/Desktop/folder'
if some_condition == true :
path = os.path.join(pwd, "nodes/hellofolder")
os.chdir(path)
print os.getcwd()
if another_condition == true:
path = os.path.join(pwd, "nodes")
os.chdir(path)
print os.getcwd()
上面提到的答案都是正确的。以下更多的是当 Python 脚本位于嵌套目录中时通常会发生的情况。您想从当前工作目录上一级,也许加载一个文件。
这个想法是简单地重新格式化路径字符串并在其前面加上“../”前缀。举个例子。
'../current_directory/' + filename
此格式与在终端中使用时类似。每当有疑问时,请启动终端并尝试一些命令。格式反映在编程语言中。
这个命令解决了我的问题 首先
import os
和之后添加
os.path.normpath(os.path.abspath(__file__) + os.sep + os.pardir)
在脚本中定义此函数,并在您想仅返回一个文件夹时调用它:
import os
def dirback():
m = os.getcwd()
n = m.rfind("\\")
d = m[0: n+1]
os.chdir(d)
return None