공학속으로/python

[Python] 비정형 스페이스로 분리된 파일 콤마로 분리하기

더월드 2022. 4. 7.

○ 입력 파일 

일정하지 않은 스페이스로 구분된 데이터 파일은 엑셀파일에서 불러와도 파일을 셀로 분할하기가 쉽지 않습니다.

엑셀에서 열어보아도 잘 열리지 않고, 스페이스도 일정하지 않아서 데이터 나누기가 안됩니다.

수동으로 일일이 해야 하는데.... 이건 정말 쉽지 않아요 ^^;;

 

이렇때 아래 파이썬 코드를 이용하면 쉽게 분할하여 엑셀에서 사용할 수 있다.

 

○ 프로그램 코드

#!/usr/bin/env python
# -*- coding: utf8 -*-

import os

#--------------------------
# File Parsing
#--------------------------
def file_parser(input_filename):

	## 출력파일 = 입력파일_out.csv
	src_name =  os.path.splitext(input_filename)[0]
	src_ext = os.path.splitext(input_filename)[-1]
	output_filename = src_name+"_out.csv"
	
	with open(input_filename, 'r', encoding='utf-8') as ro, open(output_filename, 'w', encoding='utf-8') as rw:
		line_cnt=0
		
		for line in ro.readlines():
			line_cnt +=1
			
			# 공백으로 분할
			ls = line.strip().split()
			
			# ','를 구분자로 합치기
			str_line=(',').join(ls)
			
			# 줄바꿈
			str_line='{0}\n'.format(str_line)
			
			# 화면출력
			print(str_line)
			
			#파일 저장
			rw.write(str_line)

#--------------------------
# Main
#--------------------------
if __name__ == "__main__":
	file_parser("E:\\Work\\parsing_test.csv")

 

○ 실행창 확인

- 프로그램 실행시 print( str_line) 함수에 의해서 화면에 찍힌 내용이 원하던 결과임을 확인할 수 있습니다.

 

○ 결과파일 확인

-parsing_test_out.txt 파일을 열어보면 일정하지 않은 스페이스로 된 데이터 파일이 아래와 같이 콤마(',') 분리자를 이용하여 잘 분리된 것을 확인할 수 있습니다.

csv파일을 엑셀에서 열어보면...이렇게 잘 됩니다.

댓글

💲 추천 글