2017-10-10 3 views
-1

다른 디렉토리의 각 파일 확장자가 차지하는 공간과 파일 확장자 및 그 개수를 계산하려고합니다.파이썬에서 각 파일 확장자가 소비하는 메모리를 계산합니다.

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> 
. 
. 
. 

위의 코드를 조작하여 각 확장 프로그램에서 사용하는 파일 확장자와 공간을 찾는 방법. 미리 감사드립니다 !!

+0

나는 그것이 내가 할 수 오전 작업 요청 –

+0

@ivan_pozdeev 때문에 오프 주제로이 질문을 닫으 투표 해요위한

import os def count_all_ext (path): res = {} for root,dirs,files in os.walk(path): for f in files : if '.' in f : statinfo = os.stat(os.path.join(root,f)) e = f.rsplit('.',1)[1] res.setdefault(e,[]).append((statinfo.st_size)) return res.items() op= '\n'.join('{}:{}'.format(key, array) for key,array in count_all_ext(r'C:\Users\user\.anaconda\navigator')) print(op) 

참고 자료 : 여기

당신이 시작할 수있는 무언가이다 특정 확장 기능에 대한 값을 가져 오지만 모든 확장 기능에 대해 동일한 결과를 얻을 수는 없습니다 !! 그래서 초보자로서 도움을 요청하십시오 – Sjn73

+0

파일 확장자 카운트 '+ 1'을'os.stat (path) .st_size'로 대체하십시오. 가서 ['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

답변

3

이 방법을 사용하면 os.stat을 살펴볼 수 있습니다.이 방법을 사용하면 파일 크기를 바이트 단위로 읽을 수 있습니다. 메가 바이트와 같은 다른 크기로 원한다면이 두 가지 사이에서 약간의 변환이 필요할 것입니다. os.stat

+0

좋은 답변입니다! 또한, fs.rsplit 대신 os.path.splitext를 사용하십시오. –

+0

@ Sjn73 값을 인쇄 할 때 sum (array)이 작동하거나 파일을 추적 할 때 누적 합계를 유지하십시오. – will7200

+0

@WilliamFlores : 예 sum() 메서드 사용 , 도와 주셔서 감사합니다! – Sjn73