tag:crieit.net,2005:https://crieit.net/boards/howdoi-copy/feed 「お手本プロジェクト書き写し記録」の投稿 - Crieit Crieitで「お手本プロジェクト書き写し記録」ボードに投稿された最近の投稿 2021-06-02T19:19:41+09:00 https://crieit.net/boards/howdoi-copy/feed tag:crieit.net,2005:PublicArticle/19 2021-06-02T19:05:18+09:00 2021-06-02T19:19:41+09:00 https://crieit.net/boards/howdoi-copy/19 19日目 <h2>1. appdirs</h2> <p><a target="_blank" rel="nofollow noopener" href="https://pypi.org/project/appdirs/">appdirs</a><br /> モジュールの適切なディレクトリを提示してくれる?</p> <h2>2. mkdocs.yml</h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.mkdocs.org/">doc</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.kimoton.com/entry/2017/07/08/121050">MkDocs 使ってみた。</a><br /> 簡単にWebサイトを作ることができる。ymlはその設定ファイル。<br /> pythonで作られてる。<br /> EC2やGitHub Project page にも構築できるみたい</p> <h2>3. setup.py</h2> <p><a target="_blank" rel="nofollow noopener" href="https://buildersbox.corp-sansan.com/entry/2019/07/11/110000">setup.pyを書いてpipでインストール可能にしよう</a><br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/propella/items/803923b2ff02482242cd">Python でパッケージを開発して配布する標準的な方法</a><br /> pip installできるようにするもの</p> <p>■次はテスト!</p> same.__.same tag:crieit.net,2005:PublicArticle/18 2021-06-01T19:03:48+09:00 2021-06-01T19:44:45+09:00 https://crieit.net/boards/howdoi-copy/18 18日目 <h2>1. urllib.parse</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/urllib.parse.html">doc</a></p> <blockquote> <p>このモジュールでは URL (Uniform Resource Locator) 文字列をその構成要素 (アドレススキーム、ネットワーク上の位置、パスその他) に分解したり、構成要素を URL に組みなおしたり、 "相対 URL (relative URL)" を指定した "基底 URL (base URL)" に基づいて絶対 URL に変換するための標準的なインタフェースを定義しています。</p> </blockquote> <h3>quote</h3> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/urllib.parse.html#urllib.parse.quote">doc</a></p> <blockquote> <p>URL 構成要素として使用できるよう特殊文字をクオートしたり非 ASCII 文字を適切にエンコードする</p> </blockquote> <p>URLを使いやすい感じに整えてくれるってことかな</p> <h2>2. input</h2> <p><a target="_blank" rel="nofollow noopener" href="https://note.nkmk.me/python-input-usage/">Pythonのinput関数でキーボードからの入力を取得</a><br /> <code>input()</code>で入力待ちの状態になる。<br /> 入力値は変数に格納できる。str型で取得。</p> same.__.same tag:crieit.net,2005:PublicArticle/2d2a31e4840cd07547003d3914a4b3c8 2021-05-24T23:22:35+09:00 2021-06-01T19:02:55+09:00 https://crieit.net/boards/howdoi-copy/2d2a31e4840cd07547003d3914a4b3c8 17日目 <h2>1. os.urandom</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/os.html#os.urandom">doc</a><br /> ランダムな文字列を生成する</p> <h2>2. sys.version</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3.5/library/sys.html#sys.version">doc</a><br /> pythonインタプリタのバージョン番号、ビルド番号などを表示する</p> <h2>3. int.from_bytes</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/stdtypes.html#int.from_bytes">doc</a><br /> 与えられたバイト列の整数表現を返す</p> <h2>4. urllib.request.getproxies</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/urllib.request.html#urllib.request.getproxies">doc</a><br /> プロキシ情報を取得</p> same.__.same tag:crieit.net,2005:PublicArticle/16 2021-05-11T22:58:05+09:00 2021-05-11T22:58:05+09:00 https://crieit.net/boards/howdoi-copy/16 16日目 <h2>1. pygments</h2> <p><a target="_blank" rel="nofollow noopener" href="https://pygments.org/">公式doc</a><br /> <a target="_blank" rel="nofollow noopener" href="https://showa-yojyo.github.io/notebook/python-pygments.html">Pygments 利用ノート<br /> </a></p> <blockquote> <p>It is a generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.</p> </blockquote> same.__.same tag:crieit.net,2005:PublicArticle/15 2021-05-07T13:19:41+09:00 2021-05-07T13:19:41+09:00 https://crieit.net/boards/howdoi-copy/15 15日目 <h2>1. pyquery</h2> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/omixin/items/d39b8af3c1c9cc14f648">PyQueryによるWebスクレイピング -クイックスタート-</a><br /> <a target="_blank" rel="nofollow noopener" href="https://someonesdodo.site/2019/01/25/the_first_scraping/">【初心者向け】Pythonで初めてのスクレイピング</a><br /> <a target="_blank" rel="nofollow noopener" href="https://pythonhosted.org/pyquery/api.html">公式doc</a></p> <h2>2. requestsのsessionモード</h2> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/mSpring/items/257adb27d9170da3b372">RequestsでSessionモード</a></p> <blockquote> <p>ログインを必要とするWebサイトの情報をRequestsを用いて取得しようとする際、その都度GETやPOSTでアクセスするとセッションが途切れてしまい毎回ログイン処理をしないといけません。<br /> これを回避するためにRequestsはSessionモードをサポートしています。</p> </blockquote> same.__.same tag:crieit.net,2005:PublicArticle/14 2021-05-06T12:41:40+09:00 2021-05-06T12:41:40+09:00 https://crieit.net/boards/howdoi-copy/14 14日目 <h2>1. pool.starmap</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/multiprocessing.html#multiprocessing.pool.Pool.starmap">doc</a><br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/okiyuki99/items/a54797cb44eb4ae571f6">starmapでPythonでの並列処理の結果をリストで受け取る</a><br /> starmapは並列処理に複数の引数を渡して結果をリストで受け取るらしい</p> <h2>2. pyquery</h2> <p><a target="_blank" rel="nofollow noopener" href="https://pypi.org/project/pyquery/">pyquery PyPI</a></p> same.__.same tag:crieit.net,2005:PublicArticle/13 2021-05-05T14:07:38+09:00 2021-05-05T14:07:38+09:00 https://crieit.net/boards/howdoi-copy/13 13日目 <h2>1. multiprocess</h2> <p>前回のコードだとたまにサブプロセスで実行されることがある、くらいだったのでsleepを入れてみた</p> <pre><code>from multiprocessing import Pool import os import time def return_id(*args): time.sleep(2) return os.getpid() if __name__ == "__main__": with Pool(processes=4) as pool: print(pool.map(return_id, range(4))) </code></pre> <p>結果</p> <pre><code>[10644, 10646, 10645, 10647] </code></pre> same.__.same tag:crieit.net,2005:PublicArticle/12 2021-05-04T14:26:47+09:00 2021-05-04T14:26:47+09:00 https://crieit.net/boards/howdoi-copy/12 12日目 <h2>1. Pool</h2> <p>マルチプロセスにならない。。。</p> <pre><code>from multiprocessing import Pool import os def return_id(*args): return os.getpid() if __name__ == "__main__": with Pool(processes=4) as pool: print(pool.map(return_id, range(4))) multiple_results = [pool.apply_async(os.getpid, ()) for i in range(5)] results = [res.get(timeout=1) for res in multiple_results] print(results) </code></pre> <p>■ 謎</p> same.__.same tag:crieit.net,2005:PublicArticle/11 2021-05-02T14:39:00+09:00 2021-05-02T14:39:00+09:00 https://crieit.net/boards/howdoi-copy/11 11日目 <h2>1. 並列処理</h2> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/Kohei909Otsuka/items/26be74de803d195b37bd#並行と並列の違い">並行処理、並列処理のあれこれ</a><br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/y518gaku/items/db3b0ced6d62b616f961#poolクラスについて">【Python】マルチプロセスについて</a><br /> <a target="_blank" rel="nofollow noopener" href="https://www.yoheim.net/blog.php?q=20170601"> マルチプロセスな処理を実装して、処理を高速化する<br /> </a><br /> - 並列処理:別のプロセスで複数の処理を同時にやる(重い処理向き)<br /> - 平行処理:同じプロセスで複数の処理を同時にやる(待機が多い処理向き)</p> <p>Poolを使うとプロセス数の指定ができる</p> same.__.same tag:crieit.net,2005:PublicArticle/10-608a3b489d2af 2021-04-29T13:51:20+09:00 2021-06-01T19:23:43+09:00 https://crieit.net/boards/howdoi-copy/10-608a3b489d2af 10日目 <h2>1. keep</h2> <p><a target="_blank" rel="nofollow noopener" href="https://pypi.org/project/keep/">keep - PyPI</a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/OrkoHunter/keep/blob/master/keep/utils.py">utils</a><br /> Your personal shell command keeper</p> <p>## 2. for文の変数名<br /> for文内で変数を使わない場合はアンダーバーを使うといい<br /> <code>for _, val in some_dict.items(): print(val) # keyは使わない</code></p> <p>■ 関数が多くて迷子になり始めた。。。</p> same.__.same tag:crieit.net,2005:PublicArticle/9-6086cf20c54e9 2021-04-26T23:33:04+09:00 2021-04-26T23:33:04+09:00 https://crieit.net/boards/howdoi-copy/9-6086cf20c54e9 9日目 <h2>1. ターミナルの出力結果に色をつける</h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.nomuramath.com/kv8wr0mp/">[python]print文で色をつけてみよう</a><br /> 変数(定数)にしておくのが普通らしい。</p> <h2>2. 環境変数の操作</h2> <p><a target="_blank" rel="nofollow noopener" href="https://note.nkmk.me/python-os-environ-getenv/">Pythonで環境変数を取得・追加・上書き・削除(os.environ)</a><br /> <code>os.environ['some_key'] = some_val</code>で環境変数を設定できる<br /> ※システムの環境変数が変わるわけではない</p> <h2>3. inspect</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/inspect.html#inspect.currentframe">doc</a><br /> inspect.currentframe - 呼び出し元のフレームオブジェクトを返す(??)<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/inspect.html#inspect.getouterframes">doc</a><br /> inspect.getouterframes - よくわからないけど実行中のオブジェクトの情報らしきものを返してくれるみたい</p> <h2>4. any</h2> <p><a target="_blank" rel="nofollow noopener" href="https://note.nkmk.me/python-all-any-usage/">Pythonの組み込み関数all(), any()の使い方</a><br /> any - イテラブルオブジェクトの要素が1つでもTrueであるかどうかを返す</p> <h2>5. map関数とlambda関数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://techacademy.jp/magazine/47886">Pythonにおけるlambda()とmap()について現役エンジニアが解説</a><br /> map関数はイテラブルオブジェクトの各要素に対して同じ処理を行う<br /> lambda関数は「lambda 引数: 返り値」の形で使う</p> <p>■ anyとmap関数便利だー</p> same.__.same tag:crieit.net,2005:PublicArticle/8 2021-04-25T13:23:41+09:00 2021-04-25T15:16:39+09:00 https://crieit.net/boards/howdoi-copy/8 8日目 <h2>1. cachelib.NullCache</h2> <p>cachelibはpythonのライブラリ<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/pallets/cachelib">github/pallets/cachelib</a></p> <h2>2. ArgumentParser.parse_args</h2> <p>parse_argsの引数にコマンドライン引数を渡せるみたい<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#name-or-flags">doc</a></p> <h2>3. AssertionError</h2> <p>assertはテストだけで使うものではなかった<br /> デバッグ支援のために使える<br /> <a target="_blank" rel="nofollow noopener" href="https://codezine.jp/article/detail/12179">Pythonで本当に役立つ機能「アサーション」の使い方を解説!『Pythonトリック』から</a></p> <p>■ vscodeのデバッグ機能を少しだけ使った</p> same.__.same tag:crieit.net,2005:PublicArticle/7 2021-04-24T14:02:05+09:00 2021-04-24T15:26:14+09:00 https://crieit.net/boards/howdoi-copy/7 7日目 <h2>1. <strong>call</strong>関数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://note.com/tamurasann/n/n9c1692a39352">python:<strong>call</strong>メソッドの基礎</a><br /> インスタンスを関数のように使ったときに呼ばれる。</p> <h2>2. 例外処理</h2> <p><a target="_blank" rel="nofollow noopener" href="https://blog.serverworks.co.jp/2020/09/23/115853">Python の例外を別の例外として投げるときの話</a><br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/exceptions.html">組み込み例外</a><br /> 例外をキャッチして別の例外としてraiseする時は<code>from</code>を使う。</p> <pre><code>except OriginalError as oe: raise AnotherError from oe </code></pre> <p>スタックトレースが見やすくなるっていうメリットかなあ</p> <p>■ クラスの中に自作例外を関数として書いて、raiseで呼び出すのは可読性高くて良いかも</p> same.__.same tag:crieit.net,2005:PublicArticle/6 2021-04-22T19:20:54+09:00 2021-04-22T19:55:14+09:00 https://crieit.net/boards/howdoi-copy/6 6日目 <h2>1. ArgumentParserの引数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#epilog">doc</a><br /> epilogはヘルプ表示で追加説明ができる。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#formatter-class">doc</a><br /> formatter_classはヘルプ出力をカスタマイズできる。<br /> RawTextHelpFormatterは空白を維持する。</p> <h2>2. textwrap</h2> <p><a target="_blank" rel="nofollow noopener" href="https://note.nkmk.me/python-textwrap-wrap-fill-shorten/">Pythonで文字列を折り返し・切り詰めして整形するtextwrap</a><br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/textwrap.html#textwrap.dedent">textwrap.dedent</a><br /> text の各行に対し、共通して現れる先頭の空白を削除します。</p> <p>この関数は通常、三重引用符で囲われた文字列をスクリーン/その他の左端にそろえ、なおかつソースコード中ではインデントされた形式を損なわないようにするために使われます。</p> <h2>3. ArgumentParser.add_argumentの引数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#metavar">doc</a><br /> metavar - 使用法メッセージ(ヘルプ)の中で使われる引数の名前。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#nargs">doc</a><br /> nargs - 受け取るべきコマンドライン引数の数。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#dest">doc</a><br /> dest - parse_args() が返すオブジェクトに追加される属性名。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.python.org/ja/3/library/argparse.html#action">doc</a><br /> action - コマンドラインにこの引数があったときの基本のアクション。</p> <p>■ ヘルプ関係の便利関数!</p> same.__.same tag:crieit.net,2005:PublicArticle/5-608146154fdb6 2021-04-22T18:47:01+09:00 2021-04-22T18:47:01+09:00 https://crieit.net/boards/howdoi-copy/5-608146154fdb6 5日目 <h2>1. グローバル変数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://uxmilk.jp/12505">Pythonでのグローバル(global)変数の宣言方法</a><br /> キーワード<code>global</code>でグローバル変数になる</p> <h2>2. プライベート関数</h2> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/shiracamus/items/bc3bdfc206b39e0a75b2">Python命名規則(PEP8より)</a></p> same.__.same