2 gky58 gky58 于 2015.07.24 14:06 提问

python使用os.listdir函数的时候的路径问题

这个工程叫test5,我要进去的目录是test5下面的test文件夹 ,下面的代码能正常执行,但是我本来想用相对目录进去,也就是最后一行写成
dealAllPic(1, '\test'),这时候在调用os.listdir的那行报错WindowsError: [Error 3] ,这是为什么啊?求教。。

 #!/usr/bin/python
# -*- coding:utf8 -*-
__author__ = 'Administrator'

from PIL import Image
import os
import stat

def dealpic(filePath):
    im = Image.open(filePath)
    xsize, ysize = im.size
    if (xsize>640 or ysize>1136):
        mul=max(xsize/640.0, ysize/1136.0)
        x=int(round(xsize/mul))
        y=int(round(ysize/mul))
        out = im.resize((x, y))
        name = filePath[:-4]
        out.save(name+'_resize.jpg')

allFileNum = 0
def dealAllPic(level, path):
    global allFileNum
    dirList = []  #所有文件夹,第一个字段是次目录的级别
    fileList = []  #所有文件
    files = os.listdir(path)  #返回一个列表,其中包含在目录条目的名称(google翻译)
    dirList.append(str(level))  #先添加目录级别
    for f in files:
        if(os.path.isdir(path + '\\' + f)):  #是目录
            if(f[0] == '.'):  #排除隐藏文件夹
                pass
            else:
                dirList.append(f)
        if(os.path.isfile(path + '\\' + f)):  #是文件
            fileList.append(f)
    i_dl = 0
    for dl in dirList:
        if(i_dl == 0):
            i_dl = i_dl + 1
        else:
            dealAllPic((int(dirList[0]) + 1), path + '\\' + dl)  #打印目录下的所有文件夹和文件,目录级别+1
    for fl in fileList:
        dealpic(path + '\\' + fl)
        allFileNum = allFileNum + 1  #计算一下有多少个文件
    print allFileNum

dealAllPic(1, 'E:\\python\\test5\\test')

2个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.24 14:31
已采纳

首先你要保证运行的时候当前目录在test5

 dealAllPic(1, '.\\test')
sina_2831808769
sina_2831808769   Rxr 2015.07.25 13:36

首先你要保证运行的时候当前目录在test5

Csdn user default icon
上传中...
上传图片
插入图片