Sunday, June 23, 2013

[TIL] Chạy command từ python script

và liên thiên về ruby, bash...

Trong python 2.7, có đến vài cách để chạy 1 câu lệnh linux. Điều này thực sự trái với triết lý của Python:
There should be one-- and preferably only one --obvious way to do it.
Các cách để chạy 1 command:
  • dùng lệnh os.system
  • dùng module subprocess
  • dùng module commands
  • dùng Popen
ai cũng hiểu rằng python có khả năng xử lý tốt hơn bash, nhưng hãy nhìn ví dụ đơn giản dưới đây khi cần lấy output của một câu lệnh:

bash:
ls_output=`ls -la | grep hvn`
hoặc
ls_output=$(ls -la | grep hvn)

Monday, June 17, 2013

[TIL] Luôn setup logging cho python script

Khi bắt tay vào viết 1 python script / program nào, cần setup logging ngay từ đầu. Quá trình code sẽ không cần sử dụng print nữa, vì có thể add handler stdout / stderr cho logger, nhờ vậy logger tương đương với các lệnh print. Khi xong, chỉ cần bỏ cái handler hoặc set debug level khác là được, không mất công xóa print.

(Một khi đã dùng python nghĩa là công việc khá phức tạp, dùng vài dòng bash không thể làm / khó làm)

Sunday, June 2, 2013

2013 TODO list

- Emacs for python
- Python debugger
- Unittest
- Dive in python 3
- Which first (Haskell -  (Scheme + SICP))  ?
- Networking - TCP/IP illustrated vol 1
- Archlinux && FreeBSD
- Django || Flask ?