티스토리 뷰

728x90

「메모장 편집 마지막 편으로 조건부 쓸데없는 내용을 잘라보자!」


메모장 마지막 편으로 조건부로 쓸데없는 내용을 자르는 방법을 소개하겠습니다.

사실상 이 글이 앞의 2개의 글보다 훨씬 쉽습니다!

그럼 바로 해보자고요!

먼저 이번 데이터를 살펴볼까요?

 

데이터가 들어있는 파일 - 저번 포스팅과 달리 쓸데없는 !, ?가 생겼다. 이를 없애보자!

 

이 글에서 작성할 코드의 목적은 행복, 사과, 맥주, 치킨과 같은 단어만 뽑아내는 것입니다.

저번 코드로 뽑아본다면 결과는 아래처럼 되겠군요.

 

저번 포스팅까지 진행한 내용입니다. 궁금하신 분은 저번 포스팅을 참고해 주세요.

 

아..!,? 가 눈에 거슬리는군요! 없애봅시다!

> 다음 코드는 조건에 따라!,?를 없애주는 코드입니다.

linessi1= linessi.replace("!","")
linessi2 = linessi1.replace("?","")

이 코드의 역할은 linessi의 문장 중!,?를 모두 삭제하는 것입니다.

replace! 말 그대로 "!"를 ""로 바꾸준다는 소리이죠

그럼 이 코드를 저번 포스팅과 합쳐보겠습니다.

import copy
import sys

name = input("파일이름: ")                                                       #1
with open('filename.txt', 'rt', encoding='UTF8') as data:                       #2
    liness = data.readlines()                                                   #3

sys.stdout = open(name+'.txt','w')                                              #4
for i in range(0,10):      #배열 형태이기 때문에 for문으로 출력해 줍니다.          #5
    liness[i] = liness[i].split("|", 1)                                         #6
    liness[i] = liness[i][0]                                                    #7
    liness[i] = liness[i][14:]                                                  #8
    linessi = copy.copy(liness[i])                                              #9
    linessi1= linessi.replace("!","")                                           #10
    linessi2 = linessi1.replace("?","")                                         #11
    liness[i] = linessi2                                                        #12
    print(linessi2)
print("#############################################################################################")
print(liness)                                                                  #13

이 코드의 동작 순서는 이렇습니다.

  • 1. 저장될 파일 이름을 입력받습니다.
  • 2. filename이라는 이름의 txt형식의 메모장 파일을 엽니다.
  • 3. filename의 데이터를 줄 별로 나눠 liness에 저장합니다.
  • 4. 아까 입력받은 이름을 가진 txt 파일을 생성하고 아래 출력되는 모든 내용을 메모장에 기록합니다.
  • 5. filename에 들어있는 문장이 10 줄이라 가정했을 때[for i in range(0,10)] for문으로 list형인 liness를 1줄씩 불러옵니다.
  • 6. liness 1줄을 첫 '|'를 기준으로 나눕니다.
  • 7. '|'를 기준으로 나눠진 liness의 앞부분만 불러옵니다.( '|' 뒤에 있는 내용은 없애고 '|'앞의 내용만 liness에 들어감)
  • 8. 앞부분의 "data: ~~ 부분을 자릅니다.
  • 9. 그 1줄을 복사해 linessi라는 변수에 넣어줍니다.
  • 10. linessi에서! 를 발견하면 없애버리고 없앤 데이터를 linessi1에 넣어줍니다.(! 를 발견하면""으로 바꿉니다.)
  • 11. linessi1에서?를 발견하면 없애버리고 없앤 데이터를 linessi2에 넣어줍니다.(?를 발견하면""으로 바꿉니다.)
  • 12.!,?를 없앤 값인 linessi2를 다시 liness에 넣어줍니다.      (이 줄에서 liness [i]와 liness2는 같다)
  • 13. liness를 출력해본다.

실행 결과입니다 :

 

name, 즉 파일이름은 데이터 완성이라고 입력했습니다.
해당 코드의 같은 폴더에 데이터 완성이라는 이름의 폴더가 생긴것을 확인 할 수 있습니다.

 


《만약 저 ################## 와 ['행복','사과'...] 같은 내용을 없애려면  위 코드의 #13과 그 바로 윗줄을 지우면 됩니다.》

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함