python 파일 다루기

파일 다루기

파일 목록열기

os모듈 사용

1
2
3
4
5
6
import os

print os.listdir('.') #현재 디렉토리의 파일목록
print

print os.listdir('../') #현재 디렉토리의 부모 디렉토리의 파일 목록


파일 종류 알아보기

  • os.path 모듈로 파일 종류 판단하여 True, False 반환
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import 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)

파일의 허가권

  1. 파일의 허가권 알아보기

    • 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
    18
    import 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)
  2. 파일의 허가권 변경하기

    • os.chmod(filepath, mode)
    1
    2
    import os
    os.chmod('sample.txt', 0777)

파일 조작하기

  1. 파일 이름 변경하기

    • os.rename(old_filepath, new_filepath)
    1
    2
    3
    4
    5
    import os
    os.rename('t.txt', 't1.txt')

    print os.access('t.txt', os.F_OK) # 파일 존재 여부 확인
    print os.access('t1.txt', os.F_OK)
  2. 파일 이동하기

    • os.rename(oldfilepath, new_filepath)

      1
      2
      3
      4
      5
      import os
      os.rename('t.txt', 'example/t1.txt')

      # 파일 존재 여부 확인
      print os.access('example/t1.txt', os.F_OK)
  3. 파일 복사하기

    • shutil모듈 활용
    • shutil.copyfile(src_filepath, dest_filepath)
    1
    2
    3
    4
    import os
    import shutil
    shutil.copyfile('sample.txt', 'sample_new.txt')
    print os.access('sample_new.txt', os.F_OK)

파일 이름 다루기

  1. 상대 경로를 절대 경로로 변환하기

    • os.path.abspath - 상대경로
      • 실제 파일 존재와는 무관하게 절대경로로 변경
        1
        2
        import os
        print os.path.abspath('o.txt')
  2. 주어진 경로에 파일이 존재하는지 확인

    • os.path.exists(filepath)

경로명 분리하기

  1. 경로와 파일명으로 분리

    1
    2
    3
    4
    f = '/Users/booski/git/python/t.txt'

    print os.path.basename(f) # 파일명만 추출
    print os.path.dirname(f) # 디렉토리 경로 추출
  2. 경로명과 파일명을 한번에 분리 - basename과 dirname을 튜플로 확인

    1
    print os.path.split(f)
  3. MS윈도우즈에서 드라이브명과 파일 경로명을 분리

    1
    print os.path.splitdrive(f)
  4. 확장자 분리 - 경로와 확장자명으로 튜플 생성

    1
    print os.path.splitext(f)
Comments