패턴 | 설명 |
---|---|
* | 임의 개수(0개포함)의 모든 문자와 매칭 |
? | 임의의 문자 1개와 매칭 |
[seq] | seq안에 있는 임의의 문자 1개와 매칭 (예: [abc]) |
[!seq] | seq에 있지 않은 임의의 문자 1개와 매칭 (예: [abc]) |
import glob
print glob.glob('*')
print
print glob.glob('[pa]*.ipynb')
print
print glob.glob('*[m]*.ipynb')
['assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb', 'docstring.pyc', 'examples', 'images', 'modfile.pyc', 'music', 'mymath.py', 'mymath.pyc', 'mymath02.pyc', 'myweb_backup', 'name_attr_test.pyc', 'pickle.txt', 'pickle2.txt', 'prname.py', 'prname.pyc', 'public_html', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python18.ipynb', 'README.md', 'readme.txt', 'removeme.txt', 'sample.txt', 'Speech', 't.c', 't.lnk', 't.slnk', 't.txt', 't1.c', 't1.txt', 't2.txt', 't3.txt', 'teststring2.pyc'] ['assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python18.ipynb'] ['assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb']
import os
print os.listdir('.') # 현재 디렉토리의 파일 목록 얻기
print
print os.listdir('../') # 현재 디렉토리의 부모 디렉토리의 파일 목록 얻기
['.DS_Store', '.git', '.gitignore', '.ipynb_checkpoints', 'assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb', 'docstring.pyc', 'examples', 'images', 'modfile.pyc', 'music', 'mymath.py', 'mymath.pyc', 'mymath02.pyc', 'myweb_backup', 'name_attr_test.pyc', 'pickle.txt', 'pickle2.txt', 'prname.py', 'prname.pyc', 'public_html', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python18.ipynb', 'README.md', 'readme.txt', 'removeme.txt', 'sample.txt', 'Speech', 't.c', 't.lnk', 't.slnk', 't.txt', 't1.c', 't1.txt', 't2.txt', 't3.txt', 'teststring2.pyc'] ['.DS_Store', 'calendar', 'calendar-dev', 'ipython', 'jms', 'jms-scheduler', 'mySpringFrame', 'python-e-learning', 'python-e-learning-movie', 'reviewer-recommend']
import dircache
l = dircache.listdir('.') # 디렉토리 목록을 a에 저장한다.
print l
print
dircache.annotate('.', l) # 디렉토리 파일명 뒤에 '/'를 추가한다.
print l
['.DS_Store', '.git//', '.gitignore', '.ipynb_checkpoints//', 'README.md', 'Speech//', 'assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb', 'docstring.pyc', 'examples//', 'images//', 'modfile.pyc', 'music', 'mymath.py', 'mymath.pyc', 'mymath02.pyc', 'myweb_backup//', 'name_attr_test.pyc', 'pickle.txt', 'pickle2.txt', 'prname.py', 'prname.pyc', 'public_html//', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python18.ipynb', 'readme.txt', 'removeme.txt', 'sample.txt', 't.c', 't.lnk', 't.slnk', 't.txt', 't1.c', 't1.txt', 't2.txt', 't3.txt', 'teststring2.pyc'] ['.DS_Store', '.git///', '.gitignore', '.ipynb_checkpoints///', 'README.md', 'Speech///', 'assignment-1.ipynb', 'assignment-2.ipynb', 'assignment-3.ipynb', 'assignment-4.ipynb', 'docstring.pyc', 'examples///', 'images///', 'modfile.pyc', 'music', 'mymath.py', 'mymath.pyc', 'mymath02.pyc', 'myweb_backup///', 'name_attr_test.pyc', 'pickle.txt', 'pickle2.txt', 'prname.py', 'prname.pyc', 'public_html///', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python18.ipynb', 'readme.txt', 'removeme.txt', 'sample.txt', 't.c', 't.lnk', 't.slnk', 't.txt', 't1.c', 't1.txt', 't2.txt', 't3.txt', 'teststring2.pyc']
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'
if os.path.ismount(fpath):
print 'Mount point'
flist = glob.glob('*')
for fname in flist:
filetype(fname)
assignment-1.ipynb : Regular file assignment-2.ipynb : Regular file assignment-3.ipynb : Regular file assignment-4.ipynb : Regular file docstring.pyc : Regular file examples : Directory images : Directory modfile.pyc : Regular file music : Regular file mymath.py : Regular file mymath.pyc : Regular file mymath02.pyc : Regular file myweb_backup : Directory name_attr_test.pyc : Regular file pickle.txt : Regular file pickle2.txt : Regular file prname.py : Regular file prname.pyc : Regular file public_html : Directory python01.ipynb : Regular file python02.ipynb : Regular file python03.ipynb : Regular file python04.ipynb : Regular file python05.ipynb : Regular file python06.ipynb : Regular file python07.ipynb : Regular file python08.ipynb : Regular file python09.ipynb : Regular file python10.ipynb : Regular file python11.ipynb : Regular file python12.ipynb : Regular file python13.ipynb : Regular file python14.ipynb : Regular file python18.ipynb : Regular file README.md : Regular file readme.txt : Regular file removeme.txt : Regular file sample.txt : Regular file Speech : Directory t.c : Regular file t.lnk : Regular file t.slnk : Regular file Symbolic link t.txt : Regular file t1.c : Regular file t1.txt : Regular file t2.txt : Regular file t3.txt : Regular file teststring2.pyc : Regular file
import os, glob
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 = glob.glob('*')
for fname in flist:
fileaccess(fname)
assignment-1.ipynb : Exists R W assignment-2.ipynb : Exists R W assignment-3.ipynb : Exists R W assignment-4.ipynb : Exists R W docstring.pyc : Exists R W examples : Exists R W X images : Exists R W X modfile.pyc : Exists R W music : Exists R W mymath.py : Exists R W mymath.pyc : Exists R W mymath02.pyc : Exists R W name_attr_test.pyc : Exists R W pickle.txt : Exists R W pickle2.txt : Exists R W prname.py : Exists R W prname.pyc : Exists R W python01.ipynb : Exists R W python02.ipynb : Exists R W python03.ipynb : Exists R W python04.ipynb : Exists R W python05.ipynb : Exists R W python06.ipynb : Exists R W python07.ipynb : Exists R W python08.ipynb : Exists R W python09.ipynb : Exists R W python10.ipynb : Exists R W python11.ipynb : Exists R W python12.ipynb : Exists R W python13.ipynb : Exists R W python14.ipynb : Exists R W python18.ipynb : Exists R W README.md : Exists R W removeme.txt : Exists R W sample.txt : Exists R W Speech : Exists R W X t.txt : Exists R W t1.txt : Exists R W t2.txt : Exists R W t3.txt : Exists R W teststring2.pyc : Exists R W
print os.access('examples', os.R_OK | os.W_OK | os.X_OK) # 읽기, 쓰기, 실행 권한 모두가 있다면 1을 리턴
True
print os.access('examples', os.R_OK | os.W_OK)
True
print os.access('python18.ipynb', os.R_OK | os.W_OK | os.X_OK) # 'python18.ipynb'의 실행권한은 없다.
False
os.chmod('sample.txt', 0777) #리눅스에서의 실행 예
import os
os.rename('t.txt', 't1.txt') # t.c를 t1.c로 바꾼다
print os.access('t.txt', os.F_OK)
print os.access('t1.txt', os.F_OK)
False True
os.rename('t1.txt', 'examples/t1.txt') # 현재 작업 디렉토리의 t1.c를 public_html에 t1.c이름으로 옮긴다.
print os.access('examples/t1.txt', os.F_OK)
True
import shutil
shutil.copyfile('docstring.pyc', 'docstring_new.pyc') #t1.txt -> t1_new.txt
print os.access('docstring_new.pyc', os.F_OK)
True
os.link('t1.c', 't1.lnk')
print os.access('t1.lnk', os.F_OK)
True
os.symlink('t1.c', 't1.slnk')
print os.access('t1.slnk', os.F_OK)
True
print os.readlink('t1.slnk')
t1.c
import os
import time
os.utime('sample.txt', None) # 현재 시간으로 접근 시간과 수정 시간을 설정한다.
atime = time.time()
mtime = atime - 60 * 60 # 1시간 (60분 * 60초) 전
os.utime('sample.txt', (atime, mtime)) # 접근 시간은 현재 시간, 수정 시간은 1시간 전으로 설정
import os, stat
import time
result = os.stat('sample.txt')
print result
print
atime = os.stat('sample.txt')[stat.ST_ATIME] # 접근 시간 읽어오기
mtime = os.stat('sample.txt')[stat.ST_MTIME] # 수정 시간 읽어오기
size = os.stat('sample.txt')[stat.ST_SIZE] # 수정 시간 읽어오기
print atime # 숫자로된 시간
print mtime
print
print time.ctime(atime) # 문자열로 변환
print time.ctime(mtime)
print size
posix.stat_result(st_mode=33279, st_ino=4164239, st_dev=16777220L, st_nlink=1, st_uid=501, st_gid=20, st_size=240, st_atime=1416633410, st_mtime=1416629810, st_ctime=1416633410) 1416633410 1416629810 Sat Nov 22 14:16:50 2014 Sat Nov 22 13:16:50 2014 240
import tempfile
tempfile.mktemp()
'/var/folders/zt/34d1dfs94fz_fc834pp0wgs40000gn/T/tmpxEnyJ1'
print os.getcwd()
/Users/yhhan/git/ipython
os.chdir('/Users/yhhan/Public/')
print os.getcwd()
/Users/yhhan/Public
import os
os.mkdir('temp') # 0777 기본 모드(rwxrwxrwx)로 만들어짐
os.mkdir('temp2', 0700) # 0700 모드(rwx------)로 만들어짐
os.makedirs('temp/level1/level2') #0777 기본 모드, 중간에 필요한 디렉토리도 모두생성
print os.access('/Users/yhhan/Public/temp', os.F_OK)
print os.access('/Users/yhhan/Public/temp2', os.F_OK)
print os.access('/Users/yhhan/Public/temp/level1/level2', os.F_OK)
True True True
os.rmdir('temp2') #디렉토리에 내용이 없을 때 삭제가능
os.rmdir('temp') #디렉토리에 다른 파일이 있으면 삭제할 수 없음
--------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-74-cb2ef2e59e2c> in <module>() ----> 1 os.rmdir('temp') #디렉토리에 다른 파일이 있으면 삭제할 수 없음 OSError: [Errno 66] Directory not empty: 'temp'
os.removedirs('temp/level1/level2')
import shutil
shutil.rmtree('temp') # shutil 모듈의 rmtree()를 이용하면 하위파일, 디렉토리를 한 번에 삭제함(조심해서 사용할 것!!!)
os.mkdir('temp')
os.mkdir('temp/temp2', 0700)
shutil.copytree('temp', 'myweb_backup') # public_html디렉토리를 myweb_backup디렉토리로 복사
import os
print os.getcwd()
print
for root, dirs, files in os.walk(os.getcwd()):
for fname in files:
if fname.endswith('.pyc'):
fullpath = os.path.join(root, fname)
print 'removing', fullpath
os.remove(fullpath)
/Users/yhhan/git/ipython removing /Users/yhhan/git/ipython/docstring.pyc removing /Users/yhhan/git/ipython/docstring_new.pyc removing /Users/yhhan/git/ipython/modfile.pyc removing /Users/yhhan/git/ipython/mymath.pyc removing /Users/yhhan/git/ipython/mymath02.pyc removing /Users/yhhan/git/ipython/name_attr_test.pyc removing /Users/yhhan/git/ipython/prname.pyc removing /Users/yhhan/git/ipython/teststring2.pyc removing /Users/yhhan/git/ipython/Speech/__init__.pyc removing /Users/yhhan/git/ipython/Speech/Recognition/__init__.pyc removing /Users/yhhan/git/ipython/Speech/Recognition/DTW.pyc removing /Users/yhhan/git/ipython/Speech/Recognition/HMM.pyc removing /Users/yhhan/git/ipython/Speech/Recognition/NN.pyc removing /Users/yhhan/git/ipython/Speech/SignalProcessing/__init__.pyc removing /Users/yhhan/git/ipython/Speech/SignalProcessing/Cepstrum.pyc removing /Users/yhhan/git/ipython/Speech/SignalProcessing/FFT.pyc removing /Users/yhhan/git/ipython/Speech/Synthesis/__init__.pyc
for root, dirs, files in os.walk("/Users/yhhan/git/ipython/Speech"):
print '%s files in %s' %(len(files), root) #디렉토리에 있는 파일 수출력
print dirs
if 'Recognition' in dirs:
print 'Reconition found'
print
1 files in /Users/yhhan/git/ipython/Speech ['Recognition', 'SignalProcessing', 'Synthesis'] Reconition found 4 files in /Users/yhhan/git/ipython/Speech/Recognition ['Adaptation'] 2 files in /Users/yhhan/git/ipython/Speech/Recognition/Adaptation [] 5 files in /Users/yhhan/git/ipython/Speech/SignalProcessing [] 4 files in /Users/yhhan/git/ipython/Speech/Synthesis []
import os
print os.path.abspath('o.txt')
/Users/yhhan/git/ipython/o.txt
f = '/Users/yhhan/git/ipython/sample.txt'
print os.path.exists(f)
print os.path.exists('sample.txt')
print os.path.exists('asdf.txt')
True True False
import os
print os.path.expanduser('~/sample.txt')
/Users/yhhan/sample.txt
os.path.join('a', 'b', 'c', 'd.txt')
'a/b/c/d.txt'
print os.curdir #현재 디렉토리
print os.pardir #부모 디렉토리
. ..
print os.sep
/
f = '/Users/yhhan/ipython/t.txt'
print os.path.basename(f) # 파일명만 추출
print os.path.dirname(f) # 디렉토리 경로 추출
t.txt /Users/yhhan/ipython
print os.path.split(f)
('/Users/yhhan/ipython', 't.txt')
print os.path.splitdrive(f)
('', '/Users/yhhan/ipython/t.txt')
print os.path.splitext(f)
('/Users/yhhan/ipython/t', '.txt')
import fnmatch
print fnmatch.fnmatch('t.txt', '?.txt')
True
print fnmatch.fnmatch('a.txt', '[abc].txt')
print fnmatch.fnmatch('b.txt', '[abc].txt')
print fnmatch.fnmatch('c.txt', '[abc].txt')
print fnmatch.fnmatch('d.txt', '[abc].txt')
True True True False