柯柯_ 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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog