我正在計算不同目錄中每個文件擴展名所佔用的空間以及文件擴展名和它們的數量。 我能取回所有文件擴展名和它們的計數由下面的代碼:計算python中每個文件擴展名消耗的內存
import os
def count_all_ext (path):
res = {}
for root,dirs,files in os.walk(path):
for f in files :
if '.' in f :
e = f.rsplit('.',1)[1]
res[e] = res.setdefault(e,0)+1
return res.items()
op= '\n'.join('%s:%d'%i for i in count_all_ext('/home'))
以下的輸出是:
baseB:4
code:100
cache-6:55
Xauthority:1
baseA:4
npmrc:1
apmrc:1
gz:186
dbf:1
lst:2
markdown:10
sqlite-shm:2
vsixmanifest:4
ttf:109
pkl:31
gitignore:8
xml:46
22:1
la:9
sublime-keymap:1
cache:103
jar:1
ts:704
desktop:3
source:1
sqlite3-journal:1
TAG:1
4:1
usage:6
oTN4k5:1
bin:6
docx:9
rb:1
woff:3
db:17
gpg-agent:1
V2XO5Y:1
dat:3
fingerprint:4
lz4:1
converted-launchers:1
bat:5
bau:1
pset:42
name:2
crt:8
dll:42
h:122
cmd:2
list:2
xlb:2
dic:1
zsh-update:1
editorconfig:4
stderr:8
sublime_session:1
xls:1
bak:1
bond:108
node:16
56:3
old:26
babelrc:2
locale:1
cfg:3
htm:1
odt:1
keyring:1
gypi:1
meta:2
md~:1
pma:2
sqlite-journal:1
odb:2
patch:2
todo:1
tvc:1
out:20
tmp:4
ps1:8
stats:6
icc:1
zprofile:1
dbt:1
re:21
3:1
mozlz4:2
7:9
ics:3
spec:9
sys:1
reg:3
metadata:6
dirs:1
whl:2
run:1
asar:1
jsonlz4:14
tdb:4
journal:2
zshrc:1
gradle:3
little:2
pub:1
js:4336
asc:1
git:1
key:12
xbel:1
properties:2
bash:1
eslintignore:1
c:283
zip:6
idx:5
lsup7I:1
zcompdump:1
un~:2
vbs:1
base:1
dmrc:1
Mdg80A:1
sbstore:42
pdf:18
tmLanguage:11
xlc:2
py:483
tgz:2
gitkeep:2
iml:2
xz:1
bashrc:1
db-journal:3
pf2:5
localstorage:95
yaml:8
tmPreferences:4
isrunning:1
txt:287
orig:2
gvdb:1
xpi:9
php:12
gitmodules:1
log:49
swo:1
jshintrc:6
stamp:2
vxd:1
fmt:1
1vCfy0:1
sock:2
pb:32
gif:3
json:2128
2:2
js-20170612122310:1
prl:9
swp:2
bash_logout:1
final:1
pl:1
exe:21
a:2
sdv:1
x86_64-pc-linux-gnu:1
parentlock:2
cson:8
rcache:2
6:1
otf:29
sublime-settings:1
xinputrc:1
gitconfig:1
npmignore:84
localstorage-journal:95
gyp:1
rst:11
update-timestamp:1
bnf:1
png:2340
db-shm:1
info:1
md:844
js-20170816210634:1
sublime-snippet:14
tsv:1
gpg:1
sth:19
mk:5
yml:47
sqlite-wal:2
ino:1
pem:4
deb:3
zsh:235
pack:5
zsh_history:1
sqlite:24
tar:1
stdout:8
jscsrc:1
lock:3
pro:1
DB:4
coffee:8
jpg:23
jamignore:1
sample:72
watchr:1
jshintignore:1
ini:14
conf:17
xcu:1
sudo_as_admin_successful:1
plist:1
xsession-errors:1
keystore:1
nls:1
bdic:1
0:11
1:8
html:89
5:10
MZPZ5Y:1
sqlite3:1
pak:61
config:1
css:112
所以我想在輸出形式:
file extension:<totalsize consumed>
.
.
.
如何通過操縱上述代碼找到每個擴展所使用的文件擴展名和空間。 在此先感謝!
我投票作爲題外話,因爲它是一個工作請求 –
@ivan_pozdeev我能夠關閉這個問題
參考資料檢索特定擴展名的值,但無法爲所有擴展名實現相同的效果!!因此尋求新手幫助 – Sjn73
嘗試用'os.stat(path).st_size'替換文件擴展名「+ 1」。閱讀/瀏覽['os'](https://docs.python.org/3.3/library/os.html)和['os.path'](https://docs.python.org/3.3/ library/os.path.html)模塊頁面,所以你可以學習'os.path.splitext(path)'這樣的方法。 – Harvey