사용자 입력 받기
input
- 사용자에게 입력받아 출력하는 함수이다.
- input() 은 입력 받은 값을 문자열로 처리한다.
- 연산을 하기 위해서는 다른 자료형으로 변환해야한다.
name = input("이름을 입력하세요 : ") # 입력되면 input부분이 문자열로 대체됨
print("이름 : ", name) # 이름 : [입력된 값]
x = int(input("숫자를 입력하세요 : ")) # input은 문자열로만 받음
print(x + 5) # [입력된 값] + 5
파일 읽고 쓰기
파일 읽기
- with open('directory/filename', 'r' ) as f 로 파일을 불러와 변수에 저장할 수 있다.
- for문을 사용해 파일 내용을 불러와 출력할 수 있다.
with open('data/chicken.txt', 'r', encoding='UTF-8') as f: # read 모드로 읽어들인 파일을 f에 저장
print(type(f)) # <class '_io.TextIOWrapper'>
for line in f:
print(line) # f에 있는 내용을 한줄씩 출력하기
strip
- 파이썬에서 엔터(줄바꿈은) \n으로 나타낸다.
- print문은 원래 한줄을 바꾸기 때문에 불러온 파일에 엔터가 있다면 줄바꿈이 두 번 된다.
- strip을 이용하면 문자의 앞 뒤에 있는 white space (enter, space, tab)을 지울 수 있다.
#strip 화이트 스페이스를 없애준다.
print(" abc def ".strip()) # abc def# 앞 뒤 스페이스가 지워짐
print(" \t \n abc def\n\n\n".strip()) # abc def
with open('data/chicken.txt', 'r', encoding='UTF-8') as f: # read 모드로 읽어들인 파일을 f에 저장
print(type(f)) # <class '_io.TextIOWrapper'>
for line in f:
print(line.strip()) # 엔터가 두 번 되는 것을 방지하기 위해 사용
split
- 문자열을 특정한 패턴 기준으로 나누고 싶을 때 사용한다.
- .split("parameter") 를 사용하면 파라미터를 기준으로 문자열을 나눠 저장한다.
- split에 파라미터를 넣지 않으면 화이트 스페이스를 기준으로 나누고, 그중 문자만 가져온다.
- split으로 가져온 값들은 문자열이기 때문에 수학연산을 하기위해서는 정수형으로 변환해야한다.
my_string = "1. 2. 3. 4. 5. 6"
print(my_string.split(". ")) # ['1', '2', '3', '4', '5', '6']
# split
full_name = "Kim, Yuna"
name_data = full_name.split(", ")
last_name = name_data[0]
first_name = name_data[1]
print(first_name, last_name) # Yuna Kim
numbers = " \n\n 2 \t 3 \n 5 7 11 \n\n".split() # ['2', '3', '5', '7', '11']
print(numbers[0] + numbers[1]) # '23' 문자열로 연산된다.
print(int(numbers[0])+int(numbers[1])) # 5 정수형으로 형변환
파일 쓰기
- 파일 열기와 비슷한 방법으로 파일을 생성하고 쓸 수 있다.
- with open('new_file.txt', 'parameter') as f: 로 할 수 있으며 파라미터에 따라 다르게 동작한다.'a' : append 추가하기 - 기존의 내용에 추가된다.
- 'w' : write 덮어쓰기 - 기존의 내용이 바뀐다.
with open('new_file.txt', 'w') as f: # 'w' write : 덮어쓰기 'a' append : 추가하기
f.write("Hello, World!\n")
f.write("My name is python!\n")