파일 생성 하기
.open() 하고 꼭 .close() 해줘야 함
변수 = open ("새파일.txt"(파일경로), "w"(읽기/쓰기/추가모드), encoding="UTF-8")
f.close()
encoding="UTF-8" 한글 안 깨지게 하는코드
r : 읽기모드
w : 쓰기모드(새로쓰기)
a : 추가모드
절대주소: 주소를 처음부분(c:/../...txt)부터 써주는 것
상대주소: 현재 실행하는 파일을 기준으로 상대적인 경로를 써주는 것
f = open("새파일.txt", 'w', encoding="UTF-8")
for i in range(1, 11):
data = "%d 번째 줄입니다.\n" % i
f.write(data)
f.close()
출력-> 새파일이름으로 새파일 생성되고 안에 번째줄이라고 내용이 저장 돼 있음
write: 직접 해당 파일에 입력안해도 write기능을 통해 대신 입력됨
파일 읽기
.read(): 함수를 호출하기만하면 내부에 있는 데이터를 모두 읽어 출력함
readline() 해당 파일에서 한줄씩 읽어오는 함수, 리스트 형태로 가져옴
(이 함수를 쓰려면 while문 활용해야한다. 파일에 문자열이 몇줄이나 있는지 모르기 때문,
line != '' 와 같이 빈문자열이 아닐때 계속 반복하도록 조건식을 만든다)
f = open("c:/python/새파일.txt", 'r', encoding="UTF-8")
while True:
line = f.readline()
if not line: break
print(line)
f.close()
file = opne('hello.txt', 'r')
a, b, c = file
print(a, b, c) ->('안녕하세요.\n', '파이썬\n', '코딩도장 입니다.\n')
readlines() 모든 라인을 한 라인씩 읽어오는 함수, 리스트 형대로 가져옴, 문자열에\n이 들어있음
f = open("c:/python/새파일.txt", 'r', encoding="UTF-8")
lines = f.readlines()
for line in lines:
print(line)
f.close()
data = f.read() 전체 통으로 읽어오는 함수
f.tell()
파일의 현재 위치를 가리키는 정수를 돌려줌,
바이너리 모드의 경우 파일의 처음부터의 바이트 수로 표현되고 텍스트 모드의 경우는 불투명한 숫자임
with
파일을 닫지않는 실수를 방지하기위해 무조건 사용
with를 쓰면 close를 따로 안해도 됨
with open("새파일.txt", "w") as f(파일객체):
f.write("hello")
strip("제거할값") 제거해 주는 함수
for문 사용
for 한줄을 나타내는 문자열 in 파일객체:
1) with open('hello.txt', 'w') as file:
for i in range(3):
file.write('Hello, world! {0}\n'.format(i))
2) with open('hello.txt', 'r') as file: #파일을 읽기모드로 열기
for line in file: #for에 파일객체를 지정하면 파일의 내용을 한줄씩 읽어서 변수에 저장
print(line.strip('\n')) #파일에서 읽어온 문자열에서 \n 삭제하여 출력
피클링(pickling)
객체를 파일에 저장하는 과정
import pickle
....
with open('james.p', 'wb')as file: #james.p 파일을 바이너리 쓰기 모드로 열기
pickle.dump(name, file)
언피클링(unpickling)
파일에서 객체를 읽어오는 과정, 언피클링 할때는 반드시 파일모드를 바이너리 읽기모드'rb'로 지정
import pickle
with open('james.p', 'rb')as file: #james.p파일을 바이너리 읽기모드로 열기
name = pickle.load(file)
print(name)
바이너리 파일 binary
컴퓨터가 처리하는 파일 형식
JSON(JavaScript Object Notation)
표준모듈, 데이터 교환 형식
데이터 계층을 받아 문자열 표현으로 바꿔준다
이 절차를 직렬화(serializing)라고 한다
(문자열 표현으로부터 데이터를 재구성하는것은 역직렬화(deserializing)이라고 함. 직렬화와 역 직렬화 사이에서 객체를 표현하는 문자열은 파일이나 데이터에 저장되거나 네트워크 연결을 통해 원격기계로 전송될 수 있다.)
서버에서 json을 브라우저로 보냄
CSV(Comma Separated Values)
쉼표로 구분된 값들을 의미
한줄에 하나의 데이터를 나타냄