Python

ph
Admin (토론 | 기여)님의 2017년 4월 10일 (월) 15:00 판 (→‎Temporary file)
이동: 둘러보기, 검색

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'

[3]

yesterday

>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(1)
>>> print yesterday.strftime('%m%d%y')
'110909'

[4]

strftime format manual


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

[5]




Access index in for loop

enumerate

for idx, val in enumerate(ints):
   print(idx, val)

[6]

Max integer

sys.maxint

[7]


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]

[8]


File existence

os.path.exists(file_path)

[9] [10]


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]+)

https://www.python.org/dev/peps/pep-0263/