일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MySQL
- ML
- docker
- Anaconda
- NLP
- DataLoader
- Backoff
- OpenAI
- overloaed
- CentOS
- Python #for문 #while문 #응애
- pytorch
- BitCoin
- 매매봇
- GPT API
- python
- Gunicorn
- 고유값
- GPU
- ML #머신러닝
- Flask
- vram
- 파이썬 #기초 #응애
- leetcode
- Mecab
- GPT
- UUID
- onnx #openvino #tf2onnx #openvinokeras
- GCP
- Python #open #read #파이썬
- Today
- Total
람쥐썬더
[PYTHON] 기본 문법 정리3 [open함수] 본문
세번째 open, 함수, 클래식
그리고 다음번엔 정규표현식으로 기초는 마무리
진짜 생각보다 할게 많네 아직 다 제대로 응용도 못하는데 근데 쓰다보면 도움되는건 분명히 있는것 같음.
바로 open 부터 !
- open
연다는 뜻인데 문을 열거나 하는게 아닌 파일을 연다는 뜻. 텍스트나 csv파일같은것들 읽을때 사용한다 html같은 파일 도 연다. 주로 안에 텍스트가 있으니까 ..ㅇㅇ
바로 코드를 보면
o = open('um.txt','w') # open을 이용해 파일을 열어주고, 두번째 w를 이용해 써준다(write)
data = '엄준식' # 임의로 데이터 준거임
o.write(data) # o.write를 이용해서 지정한 변수(data)를 넣는다.
o.close() # 파일을 닫아준다
1. open으로 파일을 열고 w(rite)를 이용해서 파일에 입력해준다는 것이다. 이걸 o 에 넣어준다
2. o.write() 라는 함수를 이용해서 위에 임의로 정의해준 data를 넣어준다.
3. o.close() 로 파일을 닫는다..
이렇게 코드를 짜고 지정된 경로에 들어가면 um.text 파일이 만들어져있을것이다
이 텍스트파일 안의 내용물은 위에서 지정해준 data인 엄준식이 들어갔다.
여기서 주의할점은 파일을 열었으면 닫아야 한다는것 (꼭 겨울에 뒷문열고 안닫는놈들있더라)
근데 with open 을 쓰면 문이 자동문이 돼서 매번 닫아줄 필요가 없다.
이번엔 with open(자동문)을 써서 파일을 한번 읽어보자
with open('um.txt','r') as f: # f 라는 곳에(as) with open을 주입시킨다.
# 이번엔 w가 아닌 r(ead)를 써서 읽어주자
print(f.read())
#read() 함수를 이용해서 위에 열어놓은 f를 열고 프린트를 해준다
## 출력 ##
엄준식
with open은 열면 자동으로 닫아주기 때문에 따로 close() 를 쓸 필요가 없다
보이는 것과 같이 열고닫는걸 f로 지정을 해주고 f.read() 를 프린트했을때 나오는 결과값은 아까 우리가 넣었던
엄준식(str) 이라는 문자열이다. 만약 um.txt 의 내용이 다르면 다른게 출력됐겠지
open 안의 r 과 w를 이용해서 읽고쓰고 했는데 추가적인 기능이있다.
a => append 의 약자로 메모장을 열고 새로 쓰고 덮는게 아니라 추가를 해준다.
bw => 바이너리형태로 써준다.
br => 바이너리 형태로 읽어준다. ( 디코드해줘야함 )
그리고 read에서 문단을 읽는 방법 readline 과 readlines 가 있다.
1. readline() 은 한줄씩 읽어주고
2. readlines() 는 복수형이라 한줄씩 리스트 형태로 반환하여 읽어준다.
코드를 한번 작성해보자
with open('practice.txt','w') as f:
for i in range(1,11):
f.write("{}번째 줄입니다.\n".format(i))
# with open 으로 practice.txt에 w(rite)해준다
# for 문이 1부터 10까지 돌고 그안에 f.write를 해줘서 1,2,3번째 줄입니다를 출력해준다
###출력예제###
1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.
이걸 위의 readline() 과 readlines()를 사용해서 읽어보자
with open('practice.txt','r') as f:
line = f.readline()
lines = f.readlines()
print(line,lines)
###출력값###
1번째 줄입니다.
['2번째 줄입니다.\n', '3번째 줄입니다.\n', '4번째 줄입니다.\n', '5번째 줄입니다.\n',
'6번째 줄입니다.\n', '7번째 줄입니다.\n', '8번째 줄입니다.\n', '9번째 줄입니다.\n', '
10번째 줄입니다.\n']
이런식으로 나온다
이 둘의 차이점은
readline()은 처음 보인 한'줄' 만 출력되는 거고(str형태임)
readlines()는 복수형이라 그런가 모든 줄을 리스트형태로 뽑아온것이다.
이런식으로 read를 제외하고 파일의 내용물을 가져오는 다양한 방법이 있다.
readline() 으로 한줄씩 다 읽는 방법은 while문을 사용해서 읽는방법이 있다.
open('practice.txt','r') as f:
while True:
line = f.readline()
if not line:
break
print(line)
###출력값###
1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.
이런식으로 무한반복 line 을 매줄씩 쪼개서 while문을 프린트해주면 된다
만약 더이상 출력할 라인이 없다면 (if not line) break 문을 써서 while문을 빠져나가면 된다
참고로 얘는 str형태라서 split 할 수 있다. 이거때매 고생 꽤나 했음..
open은 이정도로 하고 sys 모듈이 있는데 다뤄본적이 없어서 따로 써보고 모듈란에 추가를 하던지 해야겠다..
오늘은 여기까지 아유졸려라
'파이썬' 카테고리의 다른 글
[PYTHON] tensorflow2 keras 모델로 openvino 활용 inference (0) | 2022.07.04 |
---|---|
[PYTHON] keras.applications 의 모델 사용하기 (0) | 2022.06.22 |
[PYTHON] 기본 문법 정리 [ 함수 ] (0) | 2021.07.20 |
[PYTHON] 기본 문법 정리2 [ 반복문 ] (0) | 2021.07.06 |
[PYTHON] 기본 문법 정리 (0) | 2021.07.01 |