在脚本目录外的文件夹中打开PIL图像

时间:2012-07-10 05:13:02

标签: python image file-io directory python-imaging-library

我有一个名为subfolder1的文件夹中的script.py。此文件夹位于名为mainfolder的文件夹中。 mainfolder中有另一个名为subfolder2的文件夹。我想script.py在子文件夹2中打开图像并做一些裁剪等,但我不知道如何正确地获取目录。我试过了:

import os
rel = "../subfolder2/1.bmp"
impath = os.path.abspath(rel)
im = Image.open(impath)

但会显示错误消息:

IOError: [Errno 2] No such file or directory: 'C:\\Users\\****\\Desktop\\mainfolder\\subfolder2\\1.bmp'

顺便说一下,我正在使用Windows。

1 个答案:

答案 0 :(得分:2)

如果您的目录结构如下所示:

mainfolder/
    subfolder1/
        script.py
    subfolder2/
        1.bmp

...然后你可以构建一个相对于script.py的路径。现在,您只使用相对于当前工作的路径直接启动shell命令。

您可以这样做:

import os
scriptDir = os.path.dirname(__file__)
impath = os.path.join(scriptDir, '../subfolder2/1.bmp')

__file__是模块中的内置属性,它告诉您该模块的文件系统路径。