본문 바로가기

IT/파이썬 Python

[파이썬] 텍스트 파일 처리시 행 끝의 개행문자(\n) 삭제 - map, lambda, strip 파이썬으로 (제가) 주로 하는 일 중 하나가 텍스트 파일 처리입니다. 큰 크기 (기가바이트 단위) 의 텍스트 파일을 읽어서 원하는 대로 처리하는데 가장 편한 방법 중 하나가 파이썬을 사용하는 방법인데요, 텍스트 파일을 읽을 때 많이 사용하는 방법 중 하나가 readlines 함수입니다. 다만 readlines함수를 쓰면 각각 행의 마지막에 붙어 있는 개행문자 (\n) 도 같이 딸려서 읽게 됩니다. 텍스트 파일을 처리 할 때 개행문자는 대부분 원치 않는 데이터이므로 삭제를 해야 하는데요, 간단하게 한 줄로 처리가 가능합니다. (마지막 라인) f = open(sys.argv[1], 'r') lines = f.readlines() lines = list(map(lambda s: s.strip(), lines).. 더보기
[파이썬] 텍스트 변수에서 따옴표 제거하기 파이썬으로 텍스트 파일을 처리하다 보면, 읽어 오는 파일 안에 숫자, 문자 등이 혼용되어 있는 경우가 있습니다. 그리고 텍스트 파일 내의 문자는 큰따움표나 작은따옴표 (" 혹은 ') 로 씌여져 있을 때가 종종 있죠. 예를 들면 아래 처럼요. "Michael Jackson";34;"Seoul" "Janet Jackson";24;"Busan" 파이썬에서 위 텍스트를 파싱하고 난 결과물에는 따옴표가 들어가게 되는데요, 문자열을 검사해서 따옴표를 없애주는 간단한 함수를 소개합니다. (제가 만든 것은 아니고 인터넷에서 이전에 검색해서 찾은 것입니다) def dequote(s): """ If a string has single or double quotes around it, remove them. Make sur.. 더보기
[파이썬] 텍스트파일에서 특정 패턴 다음 에 오는 텍스트 가져오기 텍스트 파일 (주로 로그파일) 이 고정길이로 (fixed length) 되어 있으면 파이썬이나 혹은 다른 스크립트를 이용해서 특정 필드의 값을 가져오는 것이 아주 간단합니다. 예를 틀어 아래와 같은 텍스트 파일에서 이름, 도시, 나이, 성별을 가져오려면 name age city sex michael 31 NY m jane 32 LA f 1 2 3 4 5 6 f = open(sys.argv[1], 'r') lines = f.readlines() for line in lines: name = line[:10] age = line[10:20] city = line[20:30] cs 이런 식으로 처리할 수 있는데요, 만일 텍스트 파일이 가변길이로 되어 있고, name, value 형식으로 되어 있으면 어떻게 처.. 더보기
파이썬 스크립트에서 실행옵션 (매개변수) 처리하기 프로그램이던 혹은 간단한 스크립트던, 대부분 실행시킬 때 특정한 옵션을 주게 됩니다. 물론 ls 처럼 아무 옵션 없이 실행할 수 있는 명령어도 있지만, 심지어 ls 조차도 보통 ls -al 같이 옵션을 주고 실행하는 경우가 더 많죠. 파이썬에서 옵션을 처리하는 방법은 아래 두 가지가 있습니다. sys 모듈의 메서드인 argv 사용 optparse 모듈 사용 간단하게 사용할때는 sys.argv 를 사용하는게 간단하고요, 프로그램 내부에서는 인자를 주어진 순서로 구분하게 되는데 사용할 때 실수로 순서를 바꾸어 입력한다던가 하면 생각한 것과 전혀다른 결과가 나올 수 있겠죠? 하지만 인자가 하나인 경우는 굳이 optparse를 쓰지 않고 sys.argv를 사용하는 것이 여러모로 간단할 수 있습니다. 아래 예제에.. 더보기
[파이썬] 텍스트 파일에서 원하지 않는 개행문자 (newline) 삭제하기 인터넷 등에서 내려받은 텍스트 파일을 아마존 킨들같은 e-book리더나, 태블릿 PC에서 볼 때 원치않는 개행문자때문에 엉뚱한 곳에서 행이 나뉘는 경우가 많습니다. 예를 들면 , 스캔해서 OCR로 인식한 문서들의 경우 특정 길이에서 무조건 다음 행으로 넘어가는데 이것이 우리가 보는 ebook리더의 화면 넓이와 맞이 않아서 보기가 좋지 않게 되는 거죠. Calibre 같은 툴을 쓰면 형식변환 뿐 아니라 이런 작업을 해 주기도 하는데, 아무래도 로직을 마음대로 만질 수가 없어서 제가 간단한 파이썬 스크립트를 만들어 보았습니다. 간단한 스크립트이므로 필요에 따라 로직을 얼마든지 수정할 수 있습니다. 123456789101112131415161718192021import sys fr=open(sys.argv[1.. 더보기
왜 파이썬을 쓸까? 파이썬이란? 이 블로그의 첫 포스트는 파이썬에 대해서 써 보려고 합니다. 아이티 관련 업종에 계신 분 들은 파이썬이라는 언어에 대해서 아마도 한번쯤은 들어 보셨을 텐데요, 간단하게 설명하자면 파이썬은 쉽게 배워서 쉽게 쓸수 있는 인터프리터 언어라고 말할 수 있겠습니다. 왜 사람들은 파이썬을 쓸까? 먼저 그림 하나를 링크해 봅니다. (출처: redmonk.com) 위 그림에 나와 있는것은 가로축은 gibhub , 세로축은 stackoverflow.com 에서의 인기도를 기반으로 개발 언어들을 나열해 놓았는데요, 오른쪽 위에 있을 수록 인기가 높고, 왼쪽 아래에 있을수록 사람들의 관심에서 멀어진 언어라고 할수 있겠네요. 보시면 파이썬이 Java, JavaScript와 함께 최상위권에 있는 것을 알 수 있습니.. 더보기