10.1.1 생성하기: open()
fout = open('oops.txt', 'wt')
print('Ooops, I created a file.', file=fout)
fout.close()
10.1.2 존재여부 확인하기: exists()
- 파일 혹은 디렉터리가 실제로 존재하는지확인
import os print(os.path.exists('oops.txt')) print(os.path.exists('./oops.txt')) print(os.path.exists('waffles')) print(os.path.exists('.')) print(os.path.exists('..'))
True True False True True
10.1.3 타입 확인하기: isfile()
- 이름이 파일인지, 디렉터리인지, 또는 절대 경로 인지 확인.
name = 'oops.txt' print(os.path.isfile(name)) print(os.path.isdir(name)) print(os.path.isdir('.')) print(os.path.isabs('name')) print(os.path.isabs('/big/fake/name')) print(os.path.isabs('big/fake/name/without/a/leading/slash'))
True False True False True False
10.1.4 복사하기: copy()
- shutil 이라는 모듈에 들어 있다.
import shutil shutil.copy('oops.txt', 'ohno.txt')
‘ohno.txt’
10.1.5 이름 바꾸기: rename()
os.rename('ohno.txt', 'ohwell.txt')
10.1.6 연결하기: link(), symlink()
- link()는 하드링크를 생성함.
- symlink()는 심벌릭 링크를 생성함.
- islink() 는 파일이 심벌릭 링크인지 확인.
os.link('oops.txt', 'yikes.txt') os.path.isfile('yikes.txt')
True
os.path.islink('yikes.txt')
False
os.symlink('oops.txt', 'jeepers.txt') print(os.path.islink('jeepers.txt')) print(os.path.isfile('jeepers.txt'))
True True
10.1.7 퍼미션 바꾸기: chmod()
- chmode()는 파일의 퍼미션을 변경한다.
- 사용자에 대한 읽기, 쓰기, 실행 퍼미션이 있다.
- 사용자가 속한 그룹과 나머지에 대한 퍼미션이 각각 존재한다.
- 이 명령은 사용자, 그룹, 나머지 퍼미션을 묶어서 압축된 8진수의 값을 취한다.
os.chmod('oops.txt', 0o400)
import stat os.chmod('oops.txt', stat.S_IRUSR)
10.1.8 오너십 바꾸기: chown()
- 숫자로 된 사용자 아이디와 그룹아이디를 지정하여 파일의 소유자와 그룹에 대한 오너십을 바꿀 수 있다.
uid = 5 gid = 22 os.chown('oops.txt', uid, gid)
PermissionError Traceback (most recent call last)
<ipython-input-25-ced2695989c0> in <module>()
1 uid = 5
2 gid = 22
----> 3 os.chown('oops.txt', uid, gid)
PermissionError: [Errno 1] Operation not permitted: 'oops.txt'
10.1.8 절대 경로 얻기: abspath()
os.path.abspath('oops.txt')
‘/home/sumin/projects/python/IntroducingPython/10. 시스템/oops.txt’
10.1.10 심벌릭 링크 경로 얻기 : realpath()
os.path.realpath('jeepers.txt')
‘/home/sumin/projects/python/IntroducingPython/10. 시스템/oops.txt’
10.1.11 삭제하기: remove()
os.remove('oops.txt')
os.path.exists('oops.txt')
FileNotFoundError Traceback (most recent call last)
<ipython-input-33-3d5c88398ac2> in <module>()
----> 1 os.remove('oops.txt')
2 os.path.exists('oops.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'oops.txt'
Comments