在linux下命令ls和dir都有相同的功能:列印當前資料夾目錄。
注:ls 是linux的原裝命令,dir 是原來dos的命令,linux選擇相容了此個dos命令,所以dir和ls在功能上是一樣的。
1. ls命令
常見的ls命令有:
ls # 顯示不隱藏的檔案與資料夾
ls -l # 顯示不隱藏的檔案與資料夾的詳細資訊
ls -a # 顯示當前目錄下的所有檔案(包含.開頭的隱藏檔案)
注意:total為當前目錄下所有檔案占用的記憶體塊(block)的大小,即下圖第一列數值之和。
2. python實現dir -l 命令
對於利用os模組編寫乙個能實現dir -l輸出的程式,首先得了解一下各個欄位的含義,請參考:
顯然難點在於怎樣獲取檔案許可權、檔案大小、檔案建立時間。
import os
import time
import stat
import math
from pwd import getpwuid
from grp import getgrgid
file_perms = [,,
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):無錫**醫院
return "{} {} {} {} } {} {}".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
print('total', total)
for x in sorted(dir_list, key=lambda z: z.upper()):
print(info(x, width))
利用os模組求乙個資料夾的大小。
一 遞迴方法 1 defsize path 給定乙個初始的資料夾路徑 2 num 0 3 list name os.listdir path 利用os模組方法,以列表的形式獲得該資料夾下面的所有檔案或者資料夾名稱 4for i in list name 5 file name os.path.joi...
利用React anu編寫乙個彈出層
本文將一步步介紹如何使用react或anu建立 乙個彈出層。react時代,都是要經過編譯的,我們很多時間都耗在babel與webpack上。因此本文也介紹如何玩webpack與babel。我們建立乙個ui目錄,裡面新增乙個package.json。內容如下,裡面已經是儘量減少babel外掛程式的使...
利用C 編寫乙個猜字遊戲
一 準備工作 規則就是這麼多,我們應該用c 來實現它。首先,我們應考慮怎樣記錄單詞,其中包括原單詞 猜錯的字母 當前猜出的殘缺單詞。如果用傳統的c風格陣列,這是很麻煩的,這用c風格字串實現很困難。但c 為我們預先想到了這一切,c 中帶有乙個功能強大的string類,它的宣告在標頭檔案string中。...