Coding/Python

[코드잇] 파이썬(python) 사용자 입력받기(input), 파일 읽고쓰기(with ~ open), strip, split

폴밴 2021. 9. 16. 14:00

사용자 입력 받기

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")