38

实际上需要走一些路并执行一些命令,下面是代码

代码

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

4

8 回答 8

53

就像你在 shell 中一样。

os.chdir("../nodes")
于 2012-09-05T11:13:04.823 回答
44

这是一种非常独立于平台的方法。

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 或任何它。

于 2013-07-18T14:51:23.940 回答
31

打电话

os.chdir('..')

与任何其他语言相同:)

于 2012-09-05T11:13:20.080 回答
5

您的问题的确切答案是os.chdir('../')

用例:

Folder1:
    sub-folder1:(you want to navigate here)
Folder2:
    sub-folde2:(you are here)

要导航到sub-folder1from sub-folder2,您需要这样写“ ../Folder1/sub-folder1/

然后,把它放进去os.chdir("../Folder1/sub-folder1/")

于 2019-05-11T18:30:40.993 回答
2

考虑使用绝对路径

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()
于 2012-09-05T11:20:41.207 回答
1

我的问题是先用这个命令解决的import os,然后添加 os.path.normpath(os.path.abspath(__file__) + os.sep + os.pardir)

于 2019-11-07T17:46:52.277 回答
0

上面提到的答案是正确的。以下是更多 a 它通常发生在您的 Python 脚本位于嵌套目录中并且您想从当前工作目录上移一级以加载文件时。

这个想法是简单地重新格式化路径字符串并用'../'作为前缀。所以一个例子就是。

'../current_directory/' + filename

此格式类似于在终端中使用时的格式。如有疑问,请启动终端并尝试一些命令。格式反映在编程语言中。

于 2020-05-11T07:27:28.143 回答
0

在您的脚本中定义此函数,并在您想返回一个文件夹时调用它:

import os

def dirback():
    m = os.getcwd()
    n = m.rfind("\\")
    d = m[0: n+1]
    os.chdir(d)
    return None
于 2022-02-11T12:54:40.580 回答