将文件从两个目录中拉回到脚本中

时间:2014-02-17 20:03:37

标签: python path

我有一个脚本可以从两个目录中提取文件,所以脚本位于:

  

/folder2/folder1/folder0/script.py

,将要处理的文件将在folder2中。

我可以用“..//”取回一个级别(我正在使用cx_free创建一个Windows可执行文件),但我认为这不是最好的方法。

我正在设置输入目录和输出目录。我想保留相对于脚本位置的路径,以便可以移动“folder2”而不会搞砸脚本的功能或强制重写它。

感谢

2 个答案:

答案 0 :(得分:3)

首先,您将获得脚本所在的目录,如下所示:

current_dir = os.path.dirname(os.path.realpath(__file__))

然后,如果你知道你将始终使用上面两个级别的目录,只需使用:

target_dir = os.path.join(current_dir, '..', '..')

从那里你可以随意操作target_dir中的文件。

修改

从adsmith,您可以将target_dir定义为:

,而不是将两个“..”路径连接在一起。
target_dir = os.path.sep.join(current_dir.split(os.path.sep)[:-2])

这将简单地切断你路径中的最后两个目录,而不是以几个丑陋的“..”结尾。所以,第一种方法看起来像:

/path/to/folder2/folder1/directory/../..

而第二种实现方式是:

/path/to/folder2/

答案 1 :(得分:0)

我会使用您建议的os.chdir(r'..\..')方法来确保您当前的工作目录位于folder2。我不确定你问的是什么,所以也许澄清为什么你认为这不是正确的解决方案?