import os
# Winodws (90%), Mac OS, Linux
print(os.listdir('.')) # 현재 디렉토리의 파일 목록 얻기
print()
print(os.listdir('../')) # 현재 디렉토리의 부모 디렉토리의 파일 목록 얻기
['python10.ipynb', 'python09.ipynb', 'python12.ipynb', 'python14.ipynb', 'cal.py', 'example', 'python13.ipynb', 'python11.ipynb', 'python08.ipynb', 'python15.ipynb', 'dog.jpeg', 'python02.ipynb', 'python04.ipynb', 'python06.ipynb', '.ipynb_checkpoints', 'python01.ipynb', 'Assignment01.ipynb', 'python03.ipynb', 'python07.ipynb', 'python05.ipynb'] ['.DS_Store', 'LICENSE', 'images', 'python3.6', 'README.md', '.git']
import os
def filetype(fpath):
print(fpath, ':', end="")
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)
python10.ipynb :Regular file python09.ipynb :Regular file python12.ipynb :Regular file removeme.txt :Regular file python14.ipynb :Regular file cal.py :Regular file t1.txt :Regular file python13.ipynb :Regular file python11.ipynb :Regular file python08.ipynb :Regular file pickle.txt :Regular file dog.jpeg :Regular file python02.ipynb :Regular file t.txt :Regular file python04.ipynb :Regular file pickle2.txt :Regular file python06.ipynb :Regular file .ipynb_checkpoints :Directory python01.ipynb :Regular file Assignment01.ipynb :Regular file python03.ipynb :Regular file output.txt :Regular file python07.ipynb :Regular file python05.ipynb :Regular file
import os
def fileaccess(fpath):
print(fpath, ':', end="")
if os.access(fpath, os.F_OK):
print('Exists - ', end="")
else:
return
if os.access(fpath, os.R_OK):
print('R', end="")
if os.access(fpath, os.W_OK):
print('W', end="")
if os.access(fpath, os.X_OK):
print('X', end="")
print()
flist = os.listdir('.')
for fname in flist:
fileaccess(fname)
python10.ipynb :Exists - RW python09.ipynb :Exists - RW python12.ipynb :Exists - RW removeme.txt :Exists - RW python14.ipynb :Exists - RW cal.py :Exists - RW t1.txt :Exists - RW python13.ipynb :Exists - RW python11.ipynb :Exists - RW python08.ipynb :Exists - RW pickle.txt :Exists - RW dog.jpeg :Exists - RW python02.ipynb :Exists - RW t.txt :Exists - RW python04.ipynb :Exists - RW pickle2.txt :Exists - RW python06.ipynb :Exists - RW .ipynb_checkpoints :Exists - RWX python01.ipynb :Exists - RW Assignment01.ipynb :Exists - RW python03.ipynb :Exists - RW output.txt :Exists - RW python07.ipynb :Exists - RW python05.ipynb :Exists - RW
os.chmod('output.txt', 0o777) # 리눅스에서의 실행 예
%ls -al output.txt
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-2-802f44213214> in <module> ----> 1 os.chmod('output.txt', 0o777) # 리눅스에서의 실행 예 2 3 get_ipython().run_line_magic('ls', '-al output.txt') FileNotFoundError: [Errno 2] No such file or directory: 'output.txt'
s = """Its power: Python developers typically report
they are able to develop applications in a half
to a tenth the amount of time it takes them to do
the same work in such languages as C."""
with open('t.txt', 'w') as f:
f.write(s) # 문자열을 파일에 기록
import os
os.rename('t.txt', 't1.txt') # t.txt를 t1.txt로 바꾼다
print(os.access('t.txt', os.F_OK))
print(os.access('t1.txt', os.F_OK))
False True
os.mkdir('example')
os.rename('t1.txt', './example/t1.txt') # 현재 작업 디렉토리의 t1.txt를 example에 t1.txt이름으로 옮긴다.
print(os.access('./example/t1.txt', os.F_OK))
True
import shutil
shutil.copyfile('output.txt', 'output_new.txt')
print(os.access('output_new.txt', os.F_OK))
True
import os
print(os.path.abspath('o.txt'))
/Users/jubong/git/python-link-e-learning/python3.6/o.txt
f = '/Users/jubong/git/python-link-e-learning/'
print(os.path.exists(f))
print(os.path.exists('t1.txt'))
print(os.path.exists('asdf.txt'))
True True False
print(os.curdir) #현재 디렉토리
print(os.pardir) #부모 디렉토리
. ..
print(os.sep)
/
f = '/Users/jubong/git/python-link-e-learning/t1.txt'
print(os.path.basename(f)) # 파일명만 추출
print(os.path.dirname(f)) # 디렉토리 경로 추출
t1.txt /Users/jubong/git/python-link-e-learning
print(os.path.split(f))
('/Users/yhhan/git/python-e-learning', 't.txt')
print(os.path.splitdrive(f))
('', '/Users/yhhan/git/python-e-learning/t.txt')
print(os.path.splitext(f))
('/Users/yhhan/git/python-e-learning/t', '.txt')
path = os.path.join("/", "Users", "jubong", "git", "python-link-e-learning", "t.txt")
print(path)
/Users/jubong/git/python-link-e-learning/t.txt
path = os.path.join("c:\\", "Users", "jubong")
print(path)
c:\/Users/jubong
import os
print(os.getcwd())
/Users/jubong/git/python-link-e-learning/python3.6
path = os.path.join("/", "Users", "jubong", "Public")
#path = os.path.join("c:\\", "Users", "jubong", "Public")
os.chdir(path)
print(os.getcwd())
/Users/jubong/Public
import os
os.mkdir('temp1') # 0755 기본 모드(rwxr-xr-x)로 만들어짐
%ls -al temp
# os.mkdir('temp2', 0700) # 0700 모드(rwx------)로 만들어짐
os.mkdir('temp2', 0o700)
os.makedirs('temp2/level1/level2') #0755 기본 모드, 중간에 필요한 디렉토리도 모두생성
print(os.access('/Users/jubong/Public/temp1', os.F_OK))
print(os.access('/Users/jubong/Public/temp2', os.F_OK))
print(os.access('/Users/jubong/Public/temp/level1/level2', os.F_OK))
error: invalid character '