18. One-Liners

이 챕터에서는 정말 도움이 될 수 있는 한 줄짜리 파이썬 명령어(one liner Python commander)를 보여 드리겠습니다.

간단한 웹서버(Simple Web Server)

네트워크를 통해 파일을 빨리 공유하고 싶은 적은 없었나요? 잘 오셨습니다. 파이썬은 딱 여러분을 위한 기능을 제공합니다. 네트워크로 서비스 하려는 디렉토리로 가서 터미널에 아래와 같은 명령어를 치세요.

# python 2
python -m SimpleHTTPServer

# python 3
python3 -m http.server
예쁘게 출력하기(Pretty Printing)

list와 dictionary를 파이썬 repl안에 있는 예쁜 형태로 출력할 수 있습니다. 다음은 관련 코드 입니다.

from pprint import pprint

my_dict = { 'name': 'Yasoob',
    'age': 'undefined', 
    '개성' : '멋짐' }
pprint(my_dict)

사전(dict)에서는 좀 더 효율적입니다. 또, 간단하게 json파일을 예쁘게 출력하고 싶다면 아래와 같이 간단하게 할 수도 있습니다.

cat file.json | python -m json.tools
스크립트를 프로파일링하기(Profiling a script)

스크립트의 병목현상을 정확하게 짚고자 할 때 정말 유용합니다.

python -m cProfile my_script.py

Note: cProfile이 C로 쓰여져서 profile보다 더 빠른 속도를 보여줍니다.

CSV to json

아래와 같이 터미널에서 실행시키면 됩니다.

python -c "import csv, json; (print json.dumps(list(csv.reader(open('csv_file.csv')))))"

csv_file.csv 파일을 해당하는 파일로 바꾸는 것을 잊지마세요.

리스트 중첩 줄이기 (List Flattening)

itertools패키지의 itertools.chain.from_iterable사용해서 간단하고 쉽게 리스트 중첩을 줄일 수 있습니다.
간단한 예시를 보면,

a_list = [[1, 2], [3, 4], [5, 6], [7, 8]]
print(list(itertools.chain.from_iterable(a_list)))
# Output: [1, 2, 3, 4, 5, 6]
한-줄 생성자

클래스를 초기화 할 때 많은 표준 할당을 피하려면,

class A(object):
    def __init__(self, a, b, c, d, e, f):
        self.__dict__.update({k: v for k, v in locals().items() if k != 'self'})

좀 더 많은 한 줄 명령어들은 파이썬 웹사이트에서 확인하실 수 있습니다.

results matching ""

    No results matching ""