Python/Python for Linux

[Python] Linux 디렉토리와 파일 리포팅

Pydole 2019. 3. 27. 11:29

 

 

 python의 os.walk module을 이용하면 디렉토리와 파일정보를 출력할 수 있고, os.path module을 추가하면

파일사이즈, 생성일, 수정일, 변경일 등을 추가로 활용할 수 있습니다.

 

 

 디렉토리는 샘플이기 때문에 테썹이기 때문에 /etc로 하였는데, 실썹은 조심해야죠. 경로는 input으로 받아도 되겠습니다.

 

 

 python version : 2.7

 

 


 

 

 

[ Sample 1 - 특정 디렉토리내에 있는 파일명과 디렉토리 경로 보기 ]

 

#!/usr/bin/python

import os

sum = 0

for (path, dir, files) in os.walk('/etc'):
    for filename in files:
        splitfilename = filename.split('.')
        print path, filename

...
...
/etc/logrotate.d yum
/etc/logrotate.d samba
/etc/logrotate.d iscsiuiolog
/etc/logrotate.d wpa_supplicant
/etc/logrotate.d ppp
/etc/logrotate.d numad
/etc/logrotate.d libvirtd
/etc/logrotate.d syslog
...
...
 
 

 

[ Sample 2 - 확장자가 conf 인 것만 출력하기 ]

 

#!/usr/bin/python


import os

for (path, dir, files) in os.walk('/etc'):
    for filename in files:
        splitfilename = filename.split('.')
        if splitfilename[-1] == 'conf':
                print path,filename

...
...
/etc/yum version-groups.conf
/etc/yum yum-cron-hourly.conf
/etc/yum yum-cron.conf
 
 

 

[ Sample 2 - 확장자가 conf 인 것만 출력하고, 파일 총 용량의 합 구하기 ]

 

#!/usr/bin/python

import os

sum = 0

for (path, dir, files) in os.walk('/etc'):
    for filename in files:
        splitfilename = filename.split('.')
        if splitfilename[-1] == 'conf':
                size = os.path.getsize(path + '/' + filename)
                print path, filename, size
                sum += size

print '*********************'

print 'Conf File Sum is %d bytes' %sum

*********************
Conf File Sum is 728040 bytes