파이썬 내용 수정 질문드려용!(질문 내용 수정)

조회수 2630회

사용자가 텍스트 파일에 내용을 입력하고 그 내용을 수정하는 코드를 작성하고 있습니다.

입력

command = int(input("(1. input 2. edit) >> "))
if command == 1:
    pattern_input = str(input("pattern >> ")).lower()
    template_input = str(input("template >> ")).lower()

    pattern = "<pattern>" + pattern_input + "</pattern>"

    content = ""

    if ";" in template_input:
        template_list = template_input.split("; ")

        for i in template_list:
            content += "<li>" + i + "</li>" + "\n"

        template = "<template>" + "<random>" + "\n" + content + "</random>" + "</template>"

    else:
        content = template_input
        template = "<template>" + content + "</template>"

    category = "<category>" + pattern + "\n" + template + "</category>"
    with open('file.txt', 'a+t') as f:
        f.write(category + "\n")
    print(category)

수정

  • 파이썬에서 텍스트 파일을 불러옴
  • 해당 파일에서 특정 문장(사용자 입력1)이 있는지 확인
  • 해당 문장을 바꿀 문장(사용자 입력2) 문장으로 바꾸기

이렇게 진행을 하려고 하는데 파일을 읽어올 때

  1. read나 readlines중에 어떤걸 사용해야 할까요?
  2. 파일 입출력시 read와 write가 동시에 가능한지 ?
  3. 특정 문장을 찾기 위해서는if "*" in file: 구문을 사용하면 될까요?
  4. 문장을 바꾸기 위해서 replace 함수를 쓰면 될까요?

도와주시면 감사하겠습니다.

1 답변

  • 1. read나 readlines중에 어떤 걸 사용해야 할까요?

    : 질문자님이 질문하신 상황에선 read를 사용하는 것이 좋습니다.

    read는 텍스트 전체를 불러오는 함수이고, readlines는 line을 기준으로 나누어 불러오는 함수입니다.

    다음은 두 함수를 비교한 예시입니다.

    with open('test.txt', 'r') as f:
        print(f.read())  # '세종대왕\n훈민정음\n한글'
        f.seek(0)
        print(f.readlines())  # ['세종대왕\n', '훈민정음\n', '한글']
    

    read 함수를 통해 텍스트 전체를 불러오고 replace를 사용하여 문장을 바꾸는 것이 효율적입니다.

    2. 파일 입출력시 read와 write가 동시에 가능한지?

    : 'r+'를 사용하면 가능합니다.

    그러나 'a+'처럼 기존 텍스트 뒤에 덧붙여 수정하는 방식입니다. 참고하세요.

    with open('test.txt', 'r+') as f:
        print(f.read())  # '세종대왕'
        f.write(' 훈민정음')  # '세종대왕 훈민정음'으로 편집
    

    3. 특정 문장을 찾기 위해서는 if "*" in file: 구문을 사용하면 될까요?

    : 네.

    if구문의 사용은 특정 문장을 '찾는'다기보단 특정 문장의 존재 여부를 '확인'한다는 말이 정확합니다.

    4. 문장을 바꾸기 위해서 replace 함수를 쓰면 될까요?

    : 네.

    가장 간단하면서도 확실한 방법입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)