본문 바로가기
파이썬

os모듈

by True Worship 2019. 8. 27.
반응형

os 모듈은 Operating System의 약자로서 운영체제에서 제공되는 여러 기능을 파이썬에서 수행할 수 있게 해줍니다.

예를 들어, 파이썬을 이용해 파일을 복사하거나 디렉터리를 생성하고 특정 디렉터리 내의 파일 목록을 구하고자 할 때 os 모듈을 사용하면 됩니다. os 모듈은 다양한 기능을 제공하는데 이 중 자주 사용되는 몇 가지만 살펴보겠습니다.

 

 

  • getcwd 함수로 현재 경로를 얻을 수 있다.

>>> import os

>>> os.getcwd()     // cwd는 current working directory의 약자이다.

'C:\\Anaconda3\\Lib\\idlelib'

 

 

  • 특정 경로에 존재하는 파일과 디렉터리 목록을 구하는 함수인 listdir 함수를 사용해보겠습니다.

 

>>> os.listdir()

['aboutDialog.py', 'AutoComplete.py', 'AutoCompleteWindow.py', 'AutoExpand.py', 'Bindings.py', 'CallTips.py', 'CallTipWindow.py', 'ChangeLog', 'ClassBrowser.py', 'CodeContext.py', 'ColorDelegator.py', 'config-extensions.def', 'config-highlight.def', 'config-keys.def', 'config-main.def', 'configDialog.py', 'configHandler.py', 'configHelpSourceEdit.py', 'configSectionNameDialog.py', 'CREDITS.txt', 'Debugger.py', 'Delegator.py', 'dynOptionMenuWidget.py', 'EditorWindow.py', 'extend.txt', 'FileList.py', 'FormatParagraph.py', 'GrepDialog.py', 'help.txt', 'HISTORY.txt', 'HyperParser.py', 'Icons', 'idle.bat', 'idle.py', 'idle.pyw', 'IdleHistory.py', 'idlever.py', 'idle_test', 'IOBinding.py', 'keybindingDialog.py', 'macosxSupport.py', 'MultiCall.py', 'MultiStatusBar.py', 'NEWS.txt', 'ObjectBrowser.py', 'OutputWindow.py', 'ParenMatch.py', 'PathBrowser.py', 'Percolator.py', 'PyParse.py', 'PyShell.py', 'README.txt', 'RemoteDebugger.py', 'RemoteObjectBrowser.py', 'ReplaceDialog.py', 'rpc.py', 'RstripExtension.py', 'run.py', 'ScriptBinding.py', 'ScrolledList.py', 'SearchDialog.py', 'SearchDialogBase.py', 'SearchEngine.py', 'StackViewer.py', 'tabbedpages.py', 'textView.py', 'TODO.txt', 'ToolTip.py', 'TreeWidget.py', 'UndoDelegator.py', 'WidgetRedirector.py', 'WindowList.py', 'ZoomHeight.py', '__init__.py', '__main__.py', '__pycache__'] >>>

 

 

이런 식으로 경로를 직접 전달하면 그 경로의 파일 리스트를 보여준다.

>>> os.listdir('c:/Anaconda3')

['conda-meta', 'DLLs', 'Doc', 'envs', 'Examples', 'include', 'info', 'Lib', 'Library', 'libs', 'licenses', 'LICENSE_PYTHON.txt', 'Menu', 'node-webkit', 'pkgs', 'python.exe', 'python34.dll', 'pythonw.exe', 'qt.conf', 'Scripts', 'share', 'stock.py', 'tcl', 'Tools', 'Uninstall-Anaconda.exe', 'xlwings32.dll', 'xlwings64.dll', '__pycache__']

 

 

 

>>> files = os.listdir('c:/Anaconda3')

>>> len(files)

28

 

  • 타입 체크하기

>>> type(files)

<classlist’>

>>>

 

디렉토리 만들기

os.mkdir('디렉터리주소')

 

디렉토리 옮겨가기

os.chdir('디렉터리주소')

 

상위 디렉토리로 옮겨가기

os.chdir('..')  // cd ..과 같은 개념인듯

 

디렉토리 삭제

os.rmdir('디렉터리주소')

 

print(dir(라이브러리이름))

라이브러리 안에 있는 모듈 이름이 뜬다.

 

 

 

파이썬 os.path 모듈

  • 코드 내에서 직접 파일을 다루는 경우 os.path 모듈을 사용하게 된다.
  • os.path 내에는 경로반환, 경로추출 등 파일/디렉토리 경로와 관련된 많은 함수를 제공해준다.

 

1. abspath(path)

path의 절대경로를 반환한다. 입력받은 path에는 파일 혹은 폴더 이름이 들어온다.

import os.path os.path.abspath("temp")

'/Users/Desktop/temp'

 

2. basename(path)

path의 기본이름을 반환한다. 입력받은 path에는 절대경로가 들어온다. (abspath와 반대되는 함수)

import os.path os.path.basename('/Users/Desktop/temp/test.txt')

'test.txt'

 

3. dirname(path)

path의 파일/디렉토리 경로를 반환한다.

import os.path os.path.dirname('/Users/Desktop/temp/test.txt')

'/Users/Desktop/temp'

 

4. exists(path)

입력받은 path가 존재하면 True, 존재하지 않으면 False를 반환한다,

import os.path os.path.exists('/Users/Desktop/temp/test.txt')

True

  • 코드내에 파일저장의 명령이 있을경우, 이를 반복실행하게 되면 파일 저장명령 역시 반복하게 된다. 이를 방지하기 위해 많이 사용한다.

 

5. getmtime(path)

path에 대한 최근 변경시간을 반환한다. 파일이 없는 경우에는 error를 발생시킨다.

import os.path import time time.gmtime(getmtime('/Users/Desktop/temp/test.txt'))

  • getctime(path) : 생성시간 반환
  • getatime(path) : 최근접근시간 반환

 

6. getsize(path)

path의 파일크기를 바이트단위로 반환한다.

import os.path os.path.getsize('/Users/Desktop/temp/test.txt')

 

7. isdir(path)

path가 디렉토리이면 True, 아니면 False를 반환한다.

import os.path os.path.isdir('/Users/Desktop/temp/test.txt')

False

  • isfile(path) : 파일인지 확인
  • isabs(path) : 절대경로인지 확인

 

8. join(path1, path2, …)

OS의 형식에 맞게 각각의 경로들을 하나의 경로로 이어준다.

import os.path os.path.join("/Users/Desktop","Temp","test.txt")

'/Users/Desktop/Temp/test.txt'

 

9. normpath(path)

path에서 . / .. 과 같은 구분자를 제거해 path를 정규화시킨다. (=원래 path의 패턴으로 만들어 준다)

import os.path os.path.normpath('/Users//Desktop/../temp/./test.txt')

'/Users/Desktop/temp/text.txt'

  • normcase(path) : path의 문자열을 정규화한다. (소문자로 바꾸고 / 형식에 맞게)

 

10. split(path)

path를 디렉토리와 파일로 분리한다.

import os.path os.path.split('/Users/Desktop/temp/test.txt')

'/Users/Desktop/temp','test.txt'

>>>os.mkdir("d:\\tempdir")

>>>os.mkdir("d:\\tempdir")

반응형

'파이썬' 카테고리의 다른 글

유용한 파이썬 모듈 glob, shutil, pickle  (0) 2019.08.27
pdf를 jpg로 바꾸는 모듈  (0) 2019.08.27

댓글