Python 파일 디렉터리

ROK·2022년 1월 4일
0

파이썬 파일 디렉터리

파일

기존의 텍스터 데이터를 문자열로 나타낸 후 변수에 저장할 때, 변수에 저장되는 데이터는 컴퓨터 메모리에 저장된다. 메모리에 저장되는 데이터는 로드 및 액세스 속도가 빠르다는 장점이 있지만 일정 전원이 공급되어야만 데이터가 보존된다. 즉 프로그램이 실행되는 동안에만 데이터가 저장된다

이러한 데이터를 영구적으로 보존할 필요가 있기 때문에 보조기억장치에 데이터를 저장하고 이를 파일이라고 한다

write

디스크 상에 저장된 파일을 읽고, 수정하고, 또는 데이터를 저장하기 위해선 가장 먼저 파일을 열어야 한다
파일을 열고 객체로 만들어 주는 작업을 수행한다

f = open("hello.txt", "w")
# open(파일명, 파일모드)
# 파일을 열고 파일 객체를 반환
for i in range(10):
	f.write("안녕")
    # write()메서드로 '안녕'을 10번 쓴다
f.close()
# 작업이 끝나면 close() 메서드로 닫아준다 ** 필수
print("완료!")

read

write에서 hello.txt 파일을 만들었다. 정상적으로 만들어 졌다면 실행한 경로에 파일이 생성되었을 것이다
이번에는 생성한 파일을 읽어본다

with open("hello.txt", "r") as f:
	print(f.read())

with 구문을 사용해 파일을 열고 파일 객체를 f로 받아서 f.read()를 통해 내용을 읽었다. 여기서 f.close()를 호출하지 않은 이유는 with를 통해 open한 객체는 with문이 종료될 때 자동으로 close 되는 것이 보장되기 때문이다
시스템 리소스의 안정적인 사용을 위해 with를 활용하는 것을 권장한다

파일 관련 메서드

  • f.read() : 파일을 읽음
  • f.readline() : 파일을 한 줄씩 읽음
  • f.readlines() : 파일 안의 모든 줄을 읽어 그 값을 리스트로 반환
  • f.write(str) : 파일에 쓴다 문자열 타입을 인자로 받음
  • f.writelines(str) : 파일에 인자를 한 줄씩 쓴다
  • f.close() : 파일을 닫음
  • f.seek(offset) : 해당 파일의 위치(offset)를 찾아 파일의 커서를 옮긴다. 파일의 처음 위치는 0
  • f.tell() : 현재 커서의 위치를 반환

예제
위에서 만든 파일 이어서 사용

quotes = ["\n안녕하세요.\n", "반갑습니다.\n", "오랫만입니다.\n"]

with open("hello.txt", "a") as f:
	f.writelines(quotes)
with open('hello.txt', 'r') as f:
	hello = f.readlines()
    print(f'위치 : {f.tell()}')
    print(hello)
    print("--------------------------")
    f.seek(10)
    print(f'위치 : {f.tell()}')

출력
위치 : 115
['안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕\n', '안녕하세요.\n', '반갑습니다.\n', '오랫만입니다.\n']
----------------------------------------------------
위치 : 10

디렉터리

파일을 다룰 때 중요한 것이 파일이 저장된 위치이다. 파일이 어느 디렉터리에 저장되어 있는 가는 매우 중요하다
파일을 저장할 때 C:\Users\person\Documents와 같은 경로가 나오는데 이 경로의 최상위 폴더를 루트 디렉터리(root directory)라고 한다

  • Windows 운영체제 : C:\
  • Linux 계열 운영 체제 : /

모듈과 패키지

파이썬에서 지원하는 디렉터리 관련 표준 라이브러리는 세 가지가 있다

  • sys
  • os
  • glob
    이 모듈들을 import해서 디렉터리 관련 작업을 한다
    파이썬 프로그램의 실행파일(python.exe) 저장위치를 알아보자
# 현재 실행되고 있는 파이썬 실행 파일의 디렉터리 반환
import sys
sys.executable

출력
'/opt/conda/bin/python'

실행 파일은 파이썬이 실행될 때 참조하는 것으로 운영 체제 및 파이썬 인터프리터가 참조하는 경로이다. 실제로 프로그래밍을 할 때는 이런 항목을 확인하지는 않는다. 우리에게 필요한 것은 pipconda 명령어를 통해 설치한 라이브러리 관련 파일의 위치를 확인하는 것이다

# import할 때 불러 오는 모듈들이 위치한 경로
sys.path

출력
['/opt/conda/lib/python39.zip',
'/opt/conda/lib/python3.9',
'/opt/conda/lib/python3.9/lib-dynload',
'',
'/opt/conda/lib/python3.9/site-packages',
'/opt/conda/lib/python3.9/site-packages/IPython/extensions']

파이썬 모듈 및 패키지 개념 정리

개념

  • 모듈(module) : 파이썬으로 만든 코드가 들어간 파일 .py
  • 패키지(package) : 기능적으로 동일하거나 동일한 결과를 만드는 모듈들의 집합 또는 폴더, 종종 라이브러리라고도 불림
  • 라이브러리(library) : 모듈과 패키지의 집합, 패키지보다 포괄적인 개념이나 패키지와 혼용되어 사용되기도 함
  • PIP(Package Installer for Python) : 패키지 관리자로 파이썬을 설치하면 기본으로 설치됨
  • PyPA(Python Packageing Authority) : 파이썬 패키지를 관리하고 유지하는 그룹
  • PyPI(The Python Package Index) : 파이썬 패키지들의 저장소

함수

  • sys.path : 현재 폴더와 파이썬 모듈들이 저장되는 위치를 리스트 형태로 반환
  • sys.path.append() : 자신이 만든 모듈의 경로를 append함수를 이용해서 추가, 추가한 디렉터리에 있는 파이썬 모듈을 불러와 사용할 수 있다
  • os.chdir() : 디렉터리 위치 변경
  • os.getcwd() : 현재 자신의 디렉터리 위치를 반환
  • os.mkdir() : 디렉터리 생성
  • os.rmdir() : 디렉터리 삭제 (단, 디렉터리가 비어있을 경우)
  • glob.glob() : 해당 경로 안의 디렉터리나 파일들을 리스트 형태로 변환
  • os.path.join() : 경로(path)를 병합하여 새 경로 생성
  • os.listdir() : 디렉터리 안의 파일 및 서브 디렉터리를 리스트 형태로 반환
  • os.path.exists() : 파일 혹은 디렉터리의 경로 존재 여부 확인
  • os.path.isfile() : 파일 경로의 존재 여부 확인
  • os.path.isdir() : 디렉터리 경로의 존재 여부 확인
  • os.path.getsize() : 파일의 크기 확인
profile
하루에 집중하자

0개의 댓글