파이썬은 콘솔창에서 input() 함수를 이용해서 값을 받아서 문자열로 리턴해준다.
input("이름을 입력하세요:")
#>>> 이름을 입력하세요:
콘솔창에서 사용자가 어떤 값을 입력할지 알려주기 위해 input() 함수는 파라미터로 문자열을 받는다.
리턴 값은 str이므로 꼭 데이터 연산시 int() 든 float() 이든 랩핑함수를 사용해주어야 한다.
input에 실수형 문자열을 전달시 int로 형 변환이 되지 않는다.
이를 모듈러 % 를 이용해서 해결할 수 있다.
number_try = float(input(f'실수형 문자열을 넣지 마세용.'))
number = number_try // 1
float_check = number_try % 1
if float_check != 0:
print('올바르지 않은 값입니다.1-20 사이의 정수를 입력하세요.')
파일을 읽기 전에 파일이 워크플레이스 폴더에 있어야 한다.
with open('fileName', 'r') as f:
파일 객체를 변수 f에 대입해서 사용할 수 있다.
이때 파일 객체는 유사 리스트 타입이다. 따라서 iterable하기 때문에 for문을 통해 글을 가져올 수 있다.
with open('chicken.txt' , 'r') as f:
#같은 폴더 경로에 잇을 때
print(type(f))
# <class '_io.TextIOWrapper'> 유사 리스트임. 파일의 한 줄이 리스트 하나의 요소에 대응됨
for line in f:
print(line)
with open('data/chicken.txt', 'r') as f:
#다른 경로에 있을 때
print(type(f))
# <class '_io.TextIOWrapper'> 유사 리스트임. 파일의 한 줄이 리스트 하나의 요소에 대응됨
for line in f:
print(line)
UnicodeDecodeError 발생시
인코딩문제! 인코딩 방법을 바꾸어 주면됨
with open('chicken.txt' , 'r', encoding = 'UTF-8') as f:
txt >>>
1 : 300
2 : 302
3 : 304 ...
python>>>
1 : 300\n
2 : 302\n
3 : 304\n ...
이런 식으로 파이썬은 txt파일을 받아들인다.
화이트 스페이스 : " " , "\t", "\n" 같은 것
:> 맨 앞과 맨 뒤의 화이트 스페이스가 사라진다.
" abc def ".strip()
#"abc def"
" \t \n abc def \n\n\n".strip()
#"abc def"
strip 함수의 리턴 값은 문자열이다
my_string = "1. 2. 3. 4."
my_string.split(".")
# 문자열을 . 을 기준으로 리스트로 만듬.
['1', ' 2' , ' 3', ' 4']
# 화이트스페이스로 구분하고 싶을 시, 파라미터를 안넘겨주면 됨
my_string = "1 2 3 4"
my_string.split()
['1', '2', '3', '4']
split 함수의 리턴 값은 리스트이다.
text_str = "안녕하세요 저는 화니에요"
text_str.replace(" ", "")
# 안녕하세요저는화니에요
파일 읽기와 다를 건 없지만, 새로운 파일 이름을 지정해주어야 한다는 것과, 모드를 쓰기모드로 바꿔주면 된다.
with open("filename.txt", 'w') as f:
f.write("쓸 내용!")
f.write("쓸 내용2!")
f.write("쓸 내용3!")
# 여기서는 줄바꿈이 자동으로 이루어지지 않음.
with open("filename.txt", 'w') as f:
f.write("쓸 내용!\n")
f.write("쓸 내용2!\n")
f.write("쓸 내용3!")
w : 같은 파일이름을 가진 채 여러번 실행시, overwrite함.a : 같은 파일이름을 가진 채 여러번 실행시, append함. 같은 파일 이름이 없으면 새로이 만듬2021-09-13