udem.py - (12) Files

Gomi_kery·2022년 9월 10일

udem.py

목록 보기
13/28
post-thumbnail
  • 기본 문서 파일(.txt) 생성 및 입력/출력을 수행하는 방법.
  • 주피터 노트북에서만 활용할 수 있음 주의.
%%writefile 파일명.확장자 	# 현재 주피터 노트북 파일의 경로에 파일 생성. 
1st line				# 파일 내 1번째 줄 내용
2nd line				# 파일 내 2번째 줄 내용

파일 open

같은 경로에 위치한 파일

  • 현재 작업 중인 jupiter_notebook 경로 확인 방법
# cell 내에 
pwd 			# 입력 후 실행

변수 = open("파일명.확장자")

  • 잘못된 파일명을 입력하거나
    잘못된 경로를 입력하는 경우에 에러 메세지 출력
[Errno 2] No such file or directory: 'myfile2.txt'

다른 경로에 위치한 파일

  • window OS
# 파이썬이 '\'를 escape 문자로 인식하지 않도록 2번'\\' 사용
myfile = open("C:\\Users\\UserName\\Folder\\FileName.txt")
  • Mac/Linux OS
myfile = open("/Users/YouUserName/Folder/FileName.txt")

open 함수의 modes

  • mode='r' : (기본값) 읽기 전용.
  • mode='w' : 쓰기 전용. 없는 파일인 경우엔 생성.
  • mode='a' : append. 문서 파일 끝에 파일 덧붙이기
  • mode='r+' : 읽기 + 쓰기
  • mode='w+' : 쓰고 읽기를 위해 파일을 여는 것.

파일 close

  • 기술적으로 파일을 열었기 때문에, 파일 삭제나 오류 등의 issue가 발생하지 않도록 닫아야 함.
myfile.close()

Method

.read()

  • 파일 내용을 하나의 문자열로 내용 표시되고 줄내림의 경우 \n으로 표시
myfile.read()
> '\n1st line\n2nd line\n3rd line\n'
  • .read() 사용 후 다시 한번 .read() 사용 시
myfile.read()
> ' '			# 커서의 위치가 제일 마지막에 있기 때문에 빈 문자열 출력

.seek(0)

  • 위의 빈 문자열 출력될 경우, 커서 위치 초기화
  • 같은 파일을 여러번 읽어야 할 때, 파일을 초기화 하는 경우에 사용
myfile.seek(0)		# 커서를 0의 위치로 초기화

.readlines()

  • 실제 문서파일의 내용이 list로 출력.
myfile.readlines()
> ['\n', '1st line\n', '2nd line\n', '3rd line\n']

with 문

  • 자원을 획득하고 사용한 후 반납하는 경우에 사용.
    ex) 파일을 열고 사용한 후 닫기

구조

with {expression} as {variable}: 
	block..				# 코드 블록 영역

with문 + mode = r

# myfile.txt 파일을 열어 내용을 읽은(출력) 후 닫는다.
with open("myfile.txt",mode="a") as f:
    f.read()
    
> 1st line
2nd line
3rd line

with문 + mode = a

# myfile.txt 문서의 끝에 내용을 추가한다
with open("myfile.txt",mode="a") as f:
    f.write("4rd line")

# myfile.txt 파일을 열어 내용을 읽은(출력) 후 닫는다.
with open("myfile.txt",mode="a") as f:
    f.read()

> 1st line
2nd line
3rd line
4rd line

with문 + mode = w

# wow.txt 파일을 생성하고 내용을 추가한다.
with open("wow.txt",mode="w") as f: 
    f.write("world\nof\nwarcraft\n")
    
# wow.txt 파일을 열어 내용을 읽은(출력) 후 닫는다.
with open("wow.txt",mode="r") as f:
    print(f.read())	

> world
of
warcraft
profile
QA. 손으로 할 수 있는 모든 것을 좋아합니다.

0개의 댓글