About 배우고 익히는법/Python
[Python] 폴더 (경로) 다루기
투명잉크
2019. 1. 4. 16:01
>>> import os
>>> os.getcwd()
'C:\\Python36'
>>> os.chdir('C:\\Python36\\Practice')
>>> os.getcwd()
'C:\\Python36\\Practice' # 현재 작업 경로가 chdir로 설정한대로 변경된 것을 알 수 있다.
>>> os.makedirs('Practice2')
>>> os.makedirs('C:\\Python37\\Practice\\Practice2')
>>> os.path.abspath('.')
'C:\\Python36'
>>> os.path.isabs('.')
False # '.'는 상대 경로이므로 절대 경로가 아니라는 의미의 'False'가 출력되었다.
>>> os.path.isabs(os.path.abspath('.'))
False # '.'는 상대 경로이지만 abspath를 통해 절대 경로('C:\\Python36')로 바꾸었으므로, 'True'가 출력된다.
>>> os.path.relpath('C:\\Windows\\Fonts', 'C:\\Windows\\System32')
'..\\Fonts' # System32 에서 한 폴더 상위로 간 후 (..) Fonts 폴더가 경로1 이다.
>>> os.path.relpath('C:\\Python36\\Lib\\site-packages\\PyQt5')
'Lib\\site-packages\\PyQt5' # 경로2가 없으므로 현재 작업 폴더 (C:\\Python36) 가 기준이 된다.
>>> os.path.dirname('C:\\Windows\\System32\\notepad.exe')
'C:\\Windows\\System32'
>>> os.path.basename('C:\\Windows\\System32\\notepad.exe')
'notepad.exe'
>>> os.path.split('C:\\Windows\\System32\\notepad.exe')
('C:\\Windows\\System32', 'notepad.exe')
>>> path = 'C:\\Windows\\System32\\notepad.exe'
>>> path.split('\\')
['C:', 'Windows', 'System32', 'notepad.exe']
>>> os.path.getsize('C:\\Windows\\System32\\Notepad.exe')
179712
>>> os.listdir('C:\\Python36\\tcl')
['dde1.4', 'reg1.3', 'tcl8', 'tcl8.6', 'tcl86t.lib', 'tcl86tg.lib', 'tclConfig.sh', 'tclooConfig.sh', 'tclstub86.lib', 'tix8.4.3', 'tk8.6', 'tk86t.lib', 'tk86tg.lib', 'tkstub86.lib']
>>> os.path.exists('C:\\Windows\\system32\\notepad.exe')
True
>>> os.path.exists('C:\\Python37')
False # C:에 Python37 이라는 폴더는 존재하지 않으므로 False를 출력한다.
>>> os.path.isfile('C:\\Windows\\system32\\notepad.exe')
True
>>> os.path.isfile('C:\\Windows\\system32\\notepad2.exe')
False # 파일이지만, 존재하지 않으므로 False를 출력한다.
>>> os.path.isfile('C:\\Windows\\system32')
False # 존재하지만, 경로가 파일이 아니고 폴더이므로 False를 출력한다.
>>> os.path.isdir('C:\\Windows\\system32')
True
>>> os.path.isdir('C:\\Windows\\system33')
False # 폴더이지만, 존재하지 않으므로 False를 출력한다.
>>> os.path.isdir('C:\\Windows\\system32\\notepad.exe')
False # 존재하지만, 폴더가 아니므로 (파일이므로) False를 출력한다.
[출처] 「Python3」 폴더 (경로) 다루기|작성자 스마일군