Discuss / Python / 作业一。。。作业二用到递归函数,没好好想。

作业一。。。作业二用到递归函数,没好好想。

Topic source
import os
# 这个程序实现的是 把当前目录多有的文件和文件夹都打印出来


class Dirall(object):
    def __init__(self,file_dir='.'):    #file_dir 是要dir的目录if os.path.isfile(x) if os.path.isdir(x)
        self.file_dir = file_dir
    """
    应该有个查看当前目录的方法
    """
    def get_dir(self):
        return os.path.abspath(self.file_dir)
    '''

    '''
    def file_check(self,filename):
        pass
    '''
    应该有个方法来判断 用户输入的是不是当前目录,不是的话应该切换当前目录到用户
    用户输入的目录
    '''
    def change_dir(self):
        if self.file_dir == '.':  #如果是'.'说明用户需要dir当前目录,那么直接执行dir函数
            print('当前目录为%s'% self.file_dir)
        else: #如果不是的话,就要用chdir()来切换当前目录为用户所输入的目录。
            self.file_dir = os.path.join(os.path.abspath('.'),self.file_dir) #把用户所输入的目录和当前目录和并,返回到self.file_dir
            os.chdir(self.file_dir)
            print('当前目录已经切换到%s' % self.file_dir)
    '''
    这个方法用来根据 self.file_dir 来找当前目录的文件。
    '''
    def dir_l(self):
            dir_files = [x for x in os.listdir(self.file_dir)] 
         #   dir_file = [x for x in os.listdir(self.file_dir)]  +dir_file    +dir_file
            for x in dir_files :
                sizes = os.path.getsize(x)/1048576
                print("%s ··· %.2fMb"% (x,sizes))



def main():
    a = Dirall('.')
    a.change_dir()
    a.dir_l()
    print(a.get_dir())

if __name__ =='__main__':
    main()

  • 1

Reply