お手本プロジェクト書き写し記録

2021-04-17に作成

勉強メモです。
howdoiというpythonのプロジェクトを書き写しています。

所有者限定モードのためこのボードには投稿できません ボードとは?

17日目

1. os.urandom

doc
ランダムな文字列を生成する

2. sys.version

doc
pythonインタプリタのバージョン番号、ビルド番号などを表示する

3. int.from_bytes

doc
与えられたバイト列の整数表現を返す

4. urllib.request.getproxies

doc
プロキシ情報を取得

16日目

1. pygments

公式doc
Pygments 利用ノート

It is a generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.

15日目

1. pyquery

PyQueryによるWebスクレイピング -クイックスタート-
【初心者向け】Pythonで初めてのスクレイピング
公式doc

2. requestsのsessionモード

RequestsでSessionモード

ログインを必要とするWebサイトの情報をRequestsを用いて取得しようとする際、その都度GETやPOSTでアクセスするとセッションが途切れてしまい毎回ログイン処理をしないといけません。
これを回避するためにRequestsはSessionモードをサポートしています。

14日目

1. pool.starmap

doc
starmapでPythonでの並列処理の結果をリストで受け取る
starmapは並列処理に複数の引数を渡して結果をリストで受け取るらしい

2. pyquery

pyquery PyPI

13日目

1. multiprocess

前回のコードだとたまにサブプロセスで実行されることがある、くらいだったのでsleepを入れてみた

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

結果

[10644, 10646, 10645, 10647]

12日目

1. Pool

マルチプロセスにならない。。。

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)

■ 謎

11日目

1. 並列処理

並行処理、並列処理のあれこれ
【Python】マルチプロセスについて
マルチプロセスな処理を実装して、処理を高速化する

- 並列処理:別のプロセスで複数の処理を同時にやる(重い処理向き)
- 平行処理:同じプロセスで複数の処理を同時にやる(待機が多い処理向き)

Poolを使うとプロセス数の指定ができる