真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用os模塊編寫一個能實現(xiàn)dir-l輸出的程序

在Linux下命令ls和dir都有相同的功能:打印當(dāng)前文件夾目錄。

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元武侯做網(wǎng)站,已為上家服務(wù),為武侯各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

注:ls 是Linux的原裝命令,dir 是原來dos的命令,Linux選擇兼容了此個dos命令,所以dir和ls在功能上是一樣的。

1. ls命令

常見的ls命令有:

ls # 顯示不隱藏的文件與文件夾

ls -l # 顯示不隱藏的文件與文件夾的詳細信息

ls -a # 顯示當(dāng)前目錄下的所有文件(包含.開頭的隱藏文件)

注意:total為當(dāng)前目錄下所有文件占用的內(nèi)存塊(block)的大小,即下圖第一列數(shù)值之和。

2. Python實現(xiàn)dir -l 命令

對于利用os模塊編寫一個能實現(xiàn)dir -l輸出的程序,首先得了解一下各個字段的含義,請參考:

https://baike.baidu.com/item/ls%20-l/5261110?fr=aladdin

顯然難點在于怎樣獲取文件權(quán)限、文件大小、文件創(chuàng)建時間。

import os

import time

import stat

import math

from pwd import getpwuid

from grp import getgrgid

FILE_PERMS = [

{'r': stat.S_IRUSR, 'w': stat.S_IWUSR, 'x': stat.S_IXUSR},

{'r': stat.S_IRGRP, 'w': stat.S_IWGRP, 'x': stat.S_IXGRP},

{'r': stat.S_IROTH, 'w': stat.S_IWOTH, 'x': stat.S_IXOTH}

]

class Info:

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

self.width = size_width

statinfo = os.stat(name)

mode = statinfo.st_mode

self.name = name

fmt = "%b %d %H:%M"

self.date = time.strftime(fmt, time.localtime(statinfo.st_mtime))

self.size = statinfo.st_size

allocated_size = statinfo.st_blocks * statinfo.st_blksize

f_bsize = os.statvfs(name).f_bsize

f_block_num = math.ceil(allocated_size / f_bsize)

self.fsize = f_block_num * f_bsize // 1024

self.user = getpwuid(statinfo.st_uid).pw_name

self.group = getgrgid(statinfo.st_gid).gr_name

self.nlink = statinfo.st_nlink

self.perm = 'd' if stat.S_ISDIR(mode) else '-'

for perm in FILE_PERMS:

self.perm += 'r' if mode & perm['r'] else '-'

self.perm += 'w' if mode & perm['w'] else '-'

self.perm += 'x' if mode & perm['x'] else '-'

# magic method: Overrides method in object

def __str__(self):無錫人流醫(yī)院 http://www.0510bhyy.com/

return "{} {} {} {} {:{width}} {} {}".format(

self.perm, self.nlink, self.user, self.group,

self.size, self.date, self.name, width=self.width)

if __name__ == '__main__':

total = 0

dir_list = []

width = 0

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

if x[0] == '.':

continue

item = Info(x)

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

total += item.fsize

dir_list.append(x)

print('total', total)

for x in sorted(dir_list, key=lambda z: z.upper()):

print(Info(x, width))


當(dāng)前標題:利用os模塊編寫一個能實現(xiàn)dir-l輸出的程序
網(wǎng)址分享:http://weahome.cn/article/gpghjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部