柯柯_ 2015-07-24 06:06 采纳率: 100%
浏览 11948
已采纳

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 2015-07-24 06:31
    关注

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

     dealAllPic(1, '.\\test')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 把Excel导入MATLAB显示错误怎么解决?
  • ¥15 Java中消息和缓存如何使用
  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx