Discuss / Python / 交个作业吧。求大神帮看看,自己觉得还行

交个作业吧。求大神帮看看,自己觉得还行

Topic source

桭丶枫

#1 Created at ... [Delete] [Delete and Lock User]

第一题:照windows dos下dir命令搞起,像模像样

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import os,stat,time

class dirfileinfo:

    def __init__(self,name,width=0):

        self.width=width

        self.name=name

        statinfo=os.stat(name)

        self.time=time.strftime('%Y/%m/%d  %H:%M',time.localtime(statinfo.st_mtime))

        self.dir='<DIR>' if stat.S_ISDIR(statinfo.st_mode) else '     '

        self.size=statinfo.st_size

    def __str__(self):

        return '{}{}{:{width}}{}'.format(self.time,self.dir,self.size,self.name,width=self.width)

        # return '%s    %s    %s %s' % (self.time,self.dir,self.size,self.name)

if __name__ == '__main__':

    width=0

    dir_list=[]

    for name in os.listdir('.'):

        item=dirfileinfo(name)

        width=max(width,len(str(item.size)))

        dir_list.append(name)

    for x in sorted(dir_list): 

        print(dirfileinfo(x,width))

桭丶枫

#2 Created at ... [Delete] [Delete and Lock User]

第二题:感觉不错

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import os

cha_path=input('输入查找路径:')

# 考虑到输入路径可能会出现'c:\aaa'和'c:\aaa\'【linux下'/aaa'和'/aaa/'】两种写法。下面加了一个if语句

cha_file=input('输入查找的字符串:')

for dir in os.walk(cha_path):

    for x in dir[-1]:

        if x.find(cha_file) != -1:

            y=os.path.join(dir[0],x)

            if cha_path[-1]=='/' or cha_path[-1]=='\\':

                z=y.replace(cha_path[:-1],'.')

            else:

                z=y.replace(cha_path,'.')

            print('文件名为:%s\n绝对路径为:%s\n对比输入目录的相对路径为:%s\n\n\n' % (x,y,z))


  • 1

Reply