Tuesday, February 22, 2011

python somthing

memory와 cpu 를 monitoring 하는 방법을 찾다가 
ps명령어를 subprocess module의 popen을 이용해서 사용하는 프로그램 발견
http://stackoverflow.com/questions/276052/how-to-get-current-cpu-and-ram-usage-in-python


그 뒤 아예 누군가 만들어놓은 psutil 모듈
http://code.google.com/p/psutil/


그리고 예전부터 궁금했던 teminal control을 위한 글 
http://nadiana.com/python-curses-terminal-controller


사실 이는 stdout에서 어떻게 overwrite 하는지 찾다가 나온건데..
sys 모듈의 sys.stdout.write()과 \r (carrige return) 과 sys.stdout.flush()를 이용하면 된다.
너무 적은 내용은 버퍼에 있기 때문에 sys.stdout.flush()를 사용하지 않으면 출력이 먼저 되지 않는다. 사실 생각해보면 sys.stdout.write를 사용하지 않고 print를 사용해도 된다. 다만 "," 를 붙여서 사용하면 동일하다. 그리고 ","를 붙이면 바로 출력이 되는 것이 아니라 buffer에 들어 가기 때문에 이 역시 stdout.flush를 호출해야 한다.