Python
ph
목차
Temporary file
tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=[, prefix='tmp'[, dir=None]]]]]) [1]
임시파일을 만든다. 아래를 쓸것.
tempfile.NamedTemporaryFile([mode='w+b'[, bufsize=-1[, suffix=[, prefix='tmp'[, dir=None[, delete=True]]]]]]) [2]
위와 동일하나 visible name의 파일을 만든다. 이름은 반환값의 name속성으로 받을 수 있다.
주의할점은, delete속성의 기본값이 True여서 쓰여진 후 곧바로 지워진다. 계속 쓰려면 해당속성을 False로 해야 한다.
Check syntax without running
python -m py_compile script.py
http://stackoverflow.com/a/8437597/766330
Time
current time
>>> import time >>> time.time() 1491792653.410371
>>> import datetime >>> datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') '2017-04-10 11:51:17' >>> datetime.datetime.utcnow() datetime.datetime(2017, 4, 10, 2, 51, 34, 356682) >>> datetime.datetime.now() datetime.datetime(2017, 4, 10, 11, 51, 36, 572681) >>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p") 'Monday, 10. April 2017 11:51AM'
yesterday
>>> from datetime import date, timedelta >>> yesterday = date.today() - timedelta(1) >>> print yesterday.strftime('%m%d%y') '110909'
is and ==
is is identity testing, == is equality testing. what happens in your code would be emulated in the interpreter like this:
>>> a = 'pub' >>> b = ''.join(['p', 'u', 'b']) >>> a == b True >>> a is b False
Access index in for loop
enumerate
for idx, val in enumerate(ints): print(idx, val)
Max integer
sys.maxint
Argument parsing
use argparse
range by step
>>> step = .1 >>> N = 10 # number of data points >>> [ x / pow(step, -1) for x in range(0, N + 1) ] [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
File existence
os.path.exists(file_path)
Define source code encoding
첫째나 둘째줄에,
# coding=<encoding name>
보통 에디터들은 다음 형식을 이해함.
#!/usr/bin/python # -*- coding: <encoding name> -*-
혹은
#!/usr/bin/python # vim: set fileencoding=<encoding name> :
정확히는, 첫째나 둘째줄이 아래 정규식에 맞아야 함.
^[ \t\v]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)