牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Python

mail.log の 日本語の Subject が文字化けしちゃって Python でデコードしたい場合のメモ

毎回忘れるんでメモ Django でメール送信内容の確認したい時に EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend' とかして log 見たら日本語の Subject が文字化けしちゃってるのを修復したい Subject: =?utf-8?b?44GT44KT44Gr44Gh44KP …

Javascript と Python の真偽値の違いメモ

javascript >> Boolean(0 > 0) false >> Boolean(1 > 0) true >> Boolean(0) false >> Boolean(1) true >> Boolean('0' > 0) false ;; ここ違う >> Boolean('1' > 0) true >> Boolean('0') true >> Boolean('1') true python >>> bool(0 > 0) False >>> bool…

Django で設定の値をメソッドにデコレータつけて一時的に変更してみるメモ

>>> from django.conf import settings >>> print settings.LOGIN_URL "/login/" >>> from django.test.utils import override_settings >>> @override_settings(LOGIN_URL='/other/login/') ... def hoge(): ... print settings.LOGIN_URL ... >>> hoge() "…

Python で response に status_code とか存在するか確認するメモ

(python2.7.13) response = requests.get(hoge) とかして response に status_code とか無い場合に response.status_code とかするとエラーになるので確認 >>> hasattr(response, 'status_code') True

Python で『AttributeError: 'tuple' object has no attribute 'items'』とかなった場合のメモ

(python2.7.13) コード 実行結果 原因 コード def hoge(fuga): return { 'hoge': '{}'.format(fuga) }, print hoge('FUGA').items() 実行結果 AttributeError: 'tuple' object has no attribute 'items' 原因 戻り値のところ最後に間違ってカンマ入っちゃっ…

Python で16進数の範囲で文字を表示するメモ

(python2.7.13) 0x20-0x7e の範囲を表示したい >>> [chr(x) for x in range(0x20, 0x7e + 0x01)] [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=…

Pythonでファイルをダウンロードしてみるメモ

(python2.7.13) 要 $ pip install requests # coding=utf8 import os import shutil import requests def download_file(url, file_dir): if not os.path.exists(file_dir): os.makedirs(file_dir) response = requests.get(url, stream=True) if response.s…

Pythonで作成日時に期限秒を足してみるメモ

(python2.7.13) 要 $ pip install python-dateutil In [1]: from datetime import datetime In [4]: expires_sec = 604799 # second In [5]: expires_sec * 1.0 / 60 / 60 Out[5]: 167.99972222222223 # hour (約7日) In [6]: from math import floor In […

Pythonでdatetimeオブジェクトとunixtimeのメモ

(python2.7.13) In [1]: from datetime import datetime In [2]: now = datetime.now() In [3]: now Out[3]: datetime.datetime(2017, 12, 12, 15, 42, 57, 966893) In [4]: int(now.strftime('%s')) Out[4]: 1513060977 In [5]: datetime.fromtimestamp(151…

Pythonとipinfo.ioのapiでIPの地域を調べるメモ

ipinfo.io api code 結果 リンク ipinfo.io api ipinfo.io の apiは1日1000回まで無料 Paid Plans - ipinfo.io code (python2.7.11) 要 $ pip install requests # coding=utf8 import requests def get_country(ips): result = [] for ip in ips: response =…

ipython で実行結果を簡単にファイルに保存したいメモ

(python2.7.13, ipython5.1.0) ipython $ ipython In [1]: %store sum(range(10)) >> hoge.txt Writing 'sum(range(10))' (int) to file 'hoge.txt'. hoge.txt 45 参考リンク How to write the output of ipython command in python text file? - Stack Over…

Tern Link B7 のギア比を考えるメモ

変更検討 13-28Tに変更 11-28Tに変更 フロントを56T (or 58T)に変更 ギア比を計算してみる 追記: ギア比を計算してみる、その2 リンク ある程度カスタマイズしたら平地でトップの7速のみでラクに走れるようになって軽すぎる気がするので検討。 変更検討 標…

Python で xlsx ファイルを読み込んで配列にするメモ

(python2.7.x) Install $ pip install xlrd Source code import xlrd def get_sheet_lines(xlsx_filename, sheet_name, num_of_header_lines=1): book = xlrd.open_workbook(xlsx_filename) sheet = book.sheet_by_name(sheet_name.decode('utf8')) lines = …

Python でランダムにパスワード生成してみるメモ

# coding=utf-8 import random def generate_password(password_length): digits_and_ascii_letters = list('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') ignore_strings = list('lIO0') password_strings = [s for s in digits_and_…

Python のクラスを継承した時にどちらのメッソドが上書きされるのかメモ

python2.7 # coding=utf-8 class Base: class_name = 'base' def method(self): print "Base!" print self.class_name class BaseB: class_name = 'base_b' def method(self): print "BaseB!!!!" print self.class_name class Hoge(Base, BaseB): class_name…

git commit時にPythonのFlake8でコードチェックするメモ

バージョン変わってやり方も変わってたので一応メモ $ pip install flake8 $ flake8 --version 3.2.1 # プロジェクトのルートで以下コマンド $flake8 --install-hook git ファイルが作成される .git/hooks/pre-commit #!/usr/local/opt/python/bin/python2.7…

flake8 の設定を変更するメモ

(python2.7.13, flake8v3.2.1) ~/.flake8 にファイルを作って設定を書く [flake8] max-line-length = 120 参考 Configuring Flake8 — flake8 3.3.0.dev0 documentation

Python で Loto6 の当選確率の計算をしてみるメモ

(pytho2.7) In [9]: import itertools In [10]: len([i for i in itertools.combinations(range(43), 6)]) Out[10]: 6096454 # 1等 1/6096454 In [19]: len([i for i in itertools.combinations(range(6), 5)]) * len([i for i in itertools.combinations(ra…

Python で Ruby の each_slice みたいなやつメモ

(python2.7) def each_slice(arr, n): return [arr[i:i + n] for i in range(0, len(arr), n)] print(each_slice([1, 2, 3, 4, 5], 2)) print(each_slice([1, 2, 3, 4, 5], 3)) print(each_slice([1, 2, 3, 4, 5], 4)) # => [[1, 2], [3, 4], [5]] # => [[1,…

django-ckeditor の画像アップロードでハマったメモ

(django1.8, python2.7) 手順 ここ に書いてあるけど... Add ckeditor_uploader to your INSTALLED_APPS setting Add CKEDITOR_UPLOAD_PATH = "uploads/" setting Add (r'^ckeditor/', include('ckeditor_uploader.urls')), project's urls.py 略 Install pi…

Python で Zip ファイルを解凍するメモ

(python2.7.11) from zipfile import ZipFile import os dir_name = 'fuga' os.mkdir(dir_name) with ZipFile('hoge.zip', 'r') as z: z.extractall(dir_name) extractall() でディレクトリを指定しないとカレントディレクトリにディレクトリを作らずファイ…

Python でファイル作成する時に指定したディレクトリが無ければ作るメモ

(python2.7.11) ディレクトリが無いとこで open して write するとエラーになるので mkdir する # coding=utf-8 import os def write(filename, text): file_path = os.path.dirname(filename) if not os.path.exists(file_path): os.makedirs(file_path) wi…

Python のメソッドを文字列で呼び出すメモ

(python2.7.11) # coding=utf-8 class Hoge: @property def fuga(self): return 'fugafuga' h = Hoge() print h.fuga print getattr(h, 'fuga') # print getattr(h, 'fu') # AttributeError print getattr(h, 'fu', 'Nothing!') # -> fugafuga # -> fugafuga…

Python3.5 の async を使って非同期でwebサイトにアクセスしてステータスコードを取得するメモ

(python3.5.1) Web DB Press Vol.82 の Go特集でやってたやつを python で書いてみる hoge.py import asyncio from urllib import request urls = [ 'http://example.com', 'http://example.net', 'http://example.org', ] async def display_status(url): r…

Python でとある日付から今日まで何日か取得するメモ

(python2.7.11) In [10]: import datetime In [11]: date = datetime.datetime.strptime('2016-01-01', '%Y-%m-%d') In [12]: date.today() Out[12]: datetime.datetime(2016, 3, 8, 16, 7, 57, 767309) In [13]: d = date.today() - date In [14]: d.days O…

Python で今日から30日後の日付はいつなのか取るメモ

(python2.7) 忘れるんでメモ 標準ライブラリのみで In [16]: import datetime In [17]: today = datetime.datetime.today() In [18]: today.strftime('%Y-%m-%d') Out[18]: '2016-02-12' In [19]: d = today + datetime.timedelta(days=30) In [21]: d.strft…

pip で前のバージョンの最新をインストールしたいメモ

例えば Django の最新バージョンは 1.9.1。だけど 1.8.x 系の最新をインストールしたい場合。 $ pip install 'Django<1.9' Collecting Django<1.9 Using cached Django-1.8.8-py2.py3-none-any.whl Installing collected packages: Django 参考 pipの使い方 …

関数呼び出しタイミングのメモ

いちおう想定通りの結果になるか確認してみた javascript (es2015) 'use strict'; function foo(func) { console.log('foo!'); func(); console.log('end foo!'); } foo(() => {console.log('bar!');}); //=> foo! //=> bar! //=> end foo! python 2.7.x #!/…

Python で画像URLから画像のサイズを取るメモ

(python2.7) $ pip install pillow #!/usr/bin/env python # coding=utf-8 from PIL import Image from cStringIO import StringIO from urllib import urlopen def get_image_size(url): file = StringIO(urlopen(url).read()) img = Image.open(file) retu…

Python と boto で S3 の情報を取得してみるメモ

# coding=utf-8 import json import re from boto3.session import Session AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID...' AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY...' BUCKET_NAME = 'hoge' session = Session( aws_access_key_id=AWS_ACCESS_KEY_I…