본문 바로가기

일찍 퇴근을 위한 Step

Excel 대신 Python : 파이썬 Text 파일 읽어서 저장하기

주제 : 여러 개의 Text 파일을 일일이 열어서 Excel로 취합하기

 

과정 

1. a b c d e f g 데이터를 리스트에 담는다.

2. 리스트를 excel같은 프레임에 추가한다. 


흔히 업무를 할때 텍스트 폴더 내에 TEXT 파일이 여러 개 있고 

그걸 엑셀에 모두 붙여넣기 해야 하는 상황이 자주 발생합니다.

코딩을 모를때는 하나하나 일일이 Ctrl + C / Ctrl + V 해주었는데요

 

만약이게 1000개가 넘는다면 일일이 하는 것은 무리겠죠?

파이썬을 이용해서 붙여넣고 저장하는 프로그램을 만들어 보겠습니다.

 

먼저 어떻게 만들건지부터 설명하겠습니다.

저는 엑셀처럼 Data가 들어갈 Frame을 만들겠습니다.

 

Excel을 실행하면 우리가 볼 수 있는 셀단 위의 Frame이 있고

그 Frame에 Ctrl + C / Ctrl + V로 데이터를 하나하나 갖다 놓잖아요?

 

 

그래서 파이썬에서도 보이지는 않지만 보인다고 생각하고

Excel과 똑같이 프레임을 만들겠습니다. 

 

excel이라고 이름을 지었을 뿐

이 엑셀과 그 엑셀은 다른 의미입니다. ㅎㅎ

 

그러면 이제 저희의 눈에 보이지는 않지만 

파이썬 어딘가에 엑셀 같은 x, y축을 가진 

프레임이 생성되었습니다.

 

그럼 이 프레임에 무엇인가 데이터를 붙여 넣어야겠죠?

저는 아래의 a, b, c, d, e, f, g라는

텍스트 폴더에 저장되어 있는 값을 붙여 넣겠습니다.

 

다양한 방법으로 붙여 넣을 수 있겠지만 저는

엑셀과 마찬가지로 아래와 같이

가상의 리스트라는 공간을 만들어서 a, b, c, d, e, f, g

 

간단하네요 ㅎㅎ

 

 

그럼 text.txt라는 파일에 있는 abcdefg라는 데이터를 읽어와 볼게요

파일을 열고요 

 

 

readline()이라는 함수를 이용해서 한 줄을 읽어봤어요

line이라는 변수에 담아서 line을 실행했는데

a는 알겠는데 '\n'이라는 문자열이 나왔어요

저번 포스팅 --- Excel 대신 Python : 데이터 검색 결과 저장하기(3)

에서 이스케이프 시퀀스를 설명했었죠

 

 

우리는 텍스트 파일을 읽을 때 a 아랫줄은 b 

b의 아랫줄은 c를 알지만 text파일에서는 

이런 줄을 구별하는 것도 뭔가 나누는 기호(?)를 

적어서 구분을 해줘야 합니다.

다음줄로 넘기겠다는 기호가 '\n'이 되는 거예요

 

그런데 우리는 a라는 데이터만 원하는 거니깐

strip()이라는 함수를 이용해서 a 빼고는 다 지워보겠습니다.

 

18번 실행에서  word에 'a 빈칸빈칸'이라는 문자열을 입력하였습니다.

빈칸을 지우고 싶어서 word.strip()를 실행하니 a만 남게 되었습니다.

똑같이 \n도 strip으로 날아가버렸습니다.

공백이라는 의미를 날려버리는군요

strip() 함수 내부에 글자 a를 적으면 a도 날아가고 나머지 글자만

남게 됩니다.

 

그리고 데이터 a라는 글자를 b라는 공간에 저장해야겠죠?

line = f.readline()를 한번 실행할 때마다 한 줄씩 다음 라인을 

읽어 내려가는 것을 볼 수 있어요

그럼 그 읽은 라인을 공백 제거한 후 b라는 리스트에 추가해 줍니다.

 

text.txt에는 a~g까지 7개의 데이터가 있으니 

똑같은 과정을 7번 반복하면 b라는 리스트에 데이터를 다 담을 수 있겠죠

 

 

하지만 100개나 1000개를 담는다면 이과정이 쉽지 않으니깐

for문을 이용해서 한 번에 담아볼게요

 

 

for문을 작성해서

기존에 실행하면서 생성되었던 변수들을 다 지워버리고

다시 실행을 하게 되면 

b를 실행했을 때 7가지 데이터가 리스트에 잘 저장된 걸 알 수 있죠

 

 

여기까지 했으면 1번을 끝낸 겁니다. ㅎㅎ

간단한 내용인데 좀 길어졌네요

 

그럼 다음 포스팅에는 2번을 해보도록 하겠습니다.