Tag: python

갑자기 Python : 문자열을 날짜/시간 클래스로 변환.

아.. ping 을 뚫어져라 보던 중, 파이썬이 또 발목을 잡는다. ping 에서 투덜거린 메시지는 이렇다. 앞부분에 나와있는 시간/날짜 문자열을, 시간 클래스로 변환하려고 한다.이를 위해선 datetime 클래스가 필요하다.그리고, 문자열을 strptime()을 사용해서 시간 형식으로 변환시켜 줘야 한다. 요일의 축약형(금, ‘금요일’이 아닌 ‘금’)은 %a 로 받을 수 있으므로, 저렇게 쓰면 제대로 돼야 한다.그런데, 오류가 난다. 혹시나 괄호를 특별처리(Escape)

python : 파일에 중복이 있는 경우, 정렬 유지하고 삭제하기.

구글에서, ‘Python remove duplicates’ 로 검색하면, 몇몇 글들을 찾을 수 있는데, 대부분 동일한 소스코드를 공유하고 있었다. 이것과 동일한 코드가 Python Cookbook(O’REILLY) 에도 기재돼 있다. 저걸 쓰면, 정렬 순서는 그대로 유지하면서 중복된 줄만 지워준다. 먼저 나온 게 살아있고, 나중 나온 건 삭제된다. 그런데, 여기엔 작은(?) 문제가 몇개 있다. 일부러 넣어놓은 빈 줄이 모두 삭제된다. (맨 첫

pip 모든 꾸러미 판올림?

pip 에는 apt 처럼 모든 꾸러미를 찾아 판올림 해주는 기능은 (아직) 없다. 그러나, 이없으면 잇몸이라고, 비슷한 기능을 해줄 순 있다. 게다가, 어떤 꾸러미에 신판이 나왔는지 일일히 알 수가 없기에, 이런 자동화 기능은 알아두면 유용하게 쓸 수 있다.머리가 비면 몸이 고생.. 역시 맞는 말이다. 다음 글을 참고했다. Stackoverflow: Upgrading all packages with pip 위 글에 몇가지

python, standard input 처리?

이런 명령을 내리고 싶다고 해보자. find . -type f \( -iname "*.cpp" -o -iname "*.md" \) -exec grep 'vim' '{}' \; | ./runp.py 바로 이전 글에 있는 내용을 가져왔다. 먼저, 확장자가 md 또는 cpp 인 파일에서, vim 이 포함되어 있는지를 찾는다. 이 결과를 Standard Input 으로 runp.py 에 넘겨준다. runp 는 이 Standard Input 을

우분투 꾸러미가 아닌, pip 설치, 판올림.

이 내용도 예전에 정리한 적이 있다. 그러나, 엄밀하게 말하면, 그 글은 문제점을 내포하고 있다. 우분투: pip3를 이용한 ipython 설치 (및 판올림) 다음 명령으로 pip3 를 판올림했을 때, pip3 를 실행하면 이런 오류가 발생할 수 있다 이 문제에 대해, 다음 글에서 설명과 함께 해결책을 제시해주고 있다. Python pip3 – cannot import name ‘main’ error after upgrading

Programming Python by Lutz, thru. Aladin.

Python 을 접한 지 이제.. 흠… 6년쯤 되어가려나? 첫 시작 때 이런 저런 책들을 봤었지만, 그래도 확실한(?) 기본을 잡아줬던 책은 Learning Python (4th Ed. by Mark Lutz) 였다. 그 뒤로도, 이런 저런 책들을, 아직도 보고 있는 중이다. 그 와중에, 언젠가는 꼭 봐야할 책으로 Programming Python 을 꼽아왔었는데, 오늘, 아주 우연찮게 이 책을 구하게 됐다. 이

BeautifulSoup, 겪은 대로, 우선 정리.

이런 코드가 있다. html_doc = “”” <html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">…</p> """ 여기서 이렇게

(Python) Regex: POSIX bracket-expression “character class”

제목이 모두 꼬부랑 말로 되어 버렸네.허나, 번역은 불가능하다. 굳이 한다면 ‘대괄호 표현식’ 정도나 가능할까? 아무튼..python3 에서, 다음과 같은 실험을 해봤다. bb 는 제대로 매칭을 했는데, aa 와 cc 는 매칭 결과 없음.cc 는 한글(유니코드)라 그런가보다하고 생각할 수도 있지만, aa 는 왜? ‘convention’ 이 나와야 정상이 아닌가?? 이 때문에 30분에서 한시간쯤, 검색도 하고, 갖고 있는 모든

python3 regex(python3-regex module), \K 옵션 사용 가능.

Perl 에서 처음 본 /K 를, Python3 에서도 사용 가능하다는 사실을 오늘 알게됐다.예전 블로그에 쓴 글, Shell Script 를 위한, IP 주소 확인, 그리고 cut 사용법.에서 이 기능에 대해 정리한 적이 있다. 이 기능이 참 편한데, 다소 복잡한 Look Around 를 사용하지 않고 간단히, 그리고 만들고, 읽기 쉬운 방법으로 원하는 목적을 이룰 수 있기 때문이다.

우분투에서 pipenv 설치.

Python 에서 기타 프로그램들을 설치하는 방법으로는 pip 을 많이 사용한다.오늘 새로운 방법인 pipenv 를 알게 되었는데, 아마도 Python 측에서는 이것을 사용하길 권장하고 있는 듯 하다. Why Python devs should use Pipenv 우분투에는 아직 이 꾸러미가 올라와있지 않은데, 굳이 꾸러미로 설치할 필요는 없다.아래에는 모두 Python3 를 이용했다. 우분투에서 사용하려면 먼저 pip(python3 pip) 을 설치해야 한다. 이