os.walk有点问题

回复 收藏

代码如下

#!/usr/bin/python

# coding=utf-8

import os

import sys

from md5 import md5sum

def walk(args):

    a = os.walk(args)

    dic1 = {}

    for p, d, f in a:

        for i in f:

            fn = os.path.join(p,i)

            dic1[fn] = os.path.getsize(fn)

    return dic1

if __name__ == '__main__':

    try:

        dic2 = walk(sys.argv[1])

    except IndexError:

        print "you should input a agument follow %s" %__file__

    d = sorted(dic2.iteritems(),key=lambda t:t[1],reverse=True)

    for i,j in  d[:2]:

        print i,j

这是作业题目 打印目录中最大的10个文件名 

当输入参数是/ect的时候会报错  别的目录都不会报错

报错信息如下

Traceback (most recent call last):

  File "./os_walk.py", line 20, in <module>

    dic2 = walk(sys.argv[1])

  File "./os_walk.py", line 15, in walk

    dic1[fn] = os.path.getsize(fn)

  File "/usr/lib/python2.7/genericpath.py", line 49, in getsize

    return os.stat(filename).st_size

OSError: [Errno 2] No such file or directory: '/etc/blkid.tab'

2016-11-24 22:41 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: