파일 다루기
파일 목록열기
os
모듈 사용1
2
3
4
5
6import os
print os.listdir('.') #현재 디렉토리의 파일목록
print
print os.listdir('../') #현재 디렉토리의 부모 디렉토리의 파일 목록
파일 종류 알아보기
os.path
모듈로 파일 종류 판단하여True
,False
반환1
2
3
4
5
6
7
8
9
10
11
12
13import os
def filetype(fpath):
print fpath, ":",
if os.path.isfile(fpath):
print 'Regular file'
if os.path.isdir(fpath):
print 'Directory'
if os.path.islink(fpath):
print 'Symbolic link'
flist = os.listdir('.')
for fname in flist:
filetype(fname)
파일의 허가권
파일의 허가권 알아보기
os.access(filepath, mode)
mode
에 들어갈 값os.F_OK
: 파일 자체가 존재하는 것을 테스트os.R_OK
: 읽기 권한이 있는 것을 테스트os.W_OK
: 쓰기 권한이 있는 것을 테스트os.X_OK
: 실행 권한이 있는 것(또는 디렉토리인지)을 테스트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import os
def fileaccess(fpath):
print fpath, ':',
if os.access(fpath, os.F_OK):
print 'Exists',
else:
return
if os.access(fpath, os.R_OK):
print 'R',
if os.access(fpath, os.W_OK):
print 'W',
if os.access(fpath, os.X_OK):
print 'X',
print
flist = os.listdir('.')
for fname in flist:
fileaccess(fname)파일의 허가권 변경하기
os.chmod(filepath, mode)
1
2import os
os.chmod('sample.txt', 0777)
파일 조작하기
파일 이름 변경하기
os.rename(old_filepath, new_filepath)
1
2
3
4
5import os
os.rename('t.txt', 't1.txt')
print os.access('t.txt', os.F_OK) # 파일 존재 여부 확인
print os.access('t1.txt', os.F_OK)파일 이동하기
os.rename(oldfilepath, new_filepath)
1
2
3
4
5import os
os.rename('t.txt', 'example/t1.txt')
# 파일 존재 여부 확인
print os.access('example/t1.txt', os.F_OK)
파일 복사하기
shutil
모듈 활용shutil.copyfile(src_filepath, dest_filepath)
1
2
3
4import os
import shutil
shutil.copyfile('sample.txt', 'sample_new.txt')
print os.access('sample_new.txt', os.F_OK)
파일 이름 다루기
상대 경로를 절대 경로로 변환하기
os.path.abspath
- 상대경로- 실제 파일 존재와는 무관하게 절대경로로 변경
1
2import os
print os.path.abspath('o.txt')
- 실제 파일 존재와는 무관하게 절대경로로 변경
주어진 경로에 파일이 존재하는지 확인
os.path.exists(filepath)
경로명 분리하기
경로와 파일명으로 분리
1
2
3
4f = '/Users/booski/git/python/t.txt'
print os.path.basename(f) # 파일명만 추출
print os.path.dirname(f) # 디렉토리 경로 추출경로명과 파일명을 한번에 분리 - basename과 dirname을 튜플로 확인
1
print os.path.split(f)
MS윈도우즈에서 드라이브명과 파일 경로명을 분리
1
print os.path.splitdrive(f)
확장자 분리 - 경로와 확장자명으로 튜플 생성
1
print os.path.splitext(f)