Tag Archives: 標準ライブラリ

Python 標準ライブラリ os OS依存の機能 – Python Dev Feed

Python 標準ライブラリ os OS依存の機能 ライブラリosを使うと環境に依存した情報の取得やファイルを操作を行うことができます。 OSの環境変数 os.environ # => # environ{‘ALLUSERSPROFILE’: ‘C:\ProgramData’, # ‘APPDATA’: ‘C:\Users\name\AppData\Roaming’, # … # } os.environ[‘OS’] # => ‘Windows_NT’ Enter fullscreen mode Exit fullscreen mode 特定の環境変数はgetenvで取得できる。第2引数は変数が設定されていない場合のデフォルト値。 os.getenv(‘OSXXX’, ‘Linux’) # => Linux os.getenv(‘OS’, ‘Linux’) # => Windows_NT Enter fullscreen mode Exit fullscreen mode ディレクトリの移動 os.getcwd() # => ‘c:\home’ os.chdir(‘./test’) os.getcwd() # =>…

Read More

Python 標準ライブラリ io I/Oストリーム – Python Dev Feed

Python 標準ライブラリ io I/Oストリーム ioモジュールでファイルの書き込み・読み込みを行うストリームの機能が提供されています。 ファイルの読み書きの例 組込関数openでストリームのインスタンスを作成し、ファイルの読み込み・書き込みを行うことができます。 組み込み関数open with open(‘./sample.txt’, ‘w’, encoding=’utf-8′) as f: f.write(‘テスト1n’) f.write(‘テスト2’) with open(‘./sampl_b.txt’, ‘wb’) as f: f.write(b’abc’) with open(‘./sample.txt’, ‘r’, encoding=’utf-8′) as f: print(f.read()) Enter fullscreen mode Exit fullscreen mode openの第1引数はファイルのパス、第2引数は読み込み・書き込みのモードです。 * r 読み込み用 * w 書き込み用(最初にファイルをクリア) * x 排他的な作成用(ファイルが存在するとエラー) * a 追記用 * b バイナリーモード * t テキストモード *…

Read More

Python 標準ライブラリ time 時刻 – Python Dev Feed

Python 標準ライブラリ time 時刻 時刻(日時)の取得や変換はtimeモジュールに用意されている関数を使って行うことができます。 概要 時刻(日時)は以下の形式で表現されます。 文字列(‘Wed Aug 18 23:54:50 2021’や’2021-08-19 23:54:50’等) エポック(epoch 1970/01/01 00:00:00)からの経過秒数 struct_time型(年、月、秒等の値を持った型) 文字列形式で時刻(日時)を取得 エポック秒 → 文字列 # 現在日時を取得 time.ctime() # => ‘Wed Aug 18 23:52:55 2021’ # 指定したエポックからの秒数の日時を取得 time.ctime(time.time()) # => ‘Wed Aug 18 23:54:50 2021’ time.ctime(1628778159) # => ‘Thu Aug 12 23:22:39 2021’ # 上記は以下と同様 # time.asctime(time.localtime(1628778159)) # =>…

Read More

Python 標準ライブラリ glob パスのパターンマッチ – Python Dev Feed

Python 標準ライブラリ glob パスのパターンマッチ ライブラリglobを使うとパスのパターンマッチを行うことができる。 ファイルの準備 import pathlib pathlib.Path(“./test/sample1.txt”).touch() pathlib.Path(“./test/sample2.txt”).touch() pathlib.Path(“./test/sampleA.txt”).touch() Enter fullscreen mode Exit fullscreen mode パターンにマッチするパスの取得 glob.glob(pathname, *, recursive=False) import glob list(glob.glob(‘./test/sample[0-9].txt’)) # => [‘./test\sample1.txt’, ‘./test\sample2.txt’] Enter fullscreen mode Exit fullscreen mode イテレータでのマッチしたパスの取得 for name in glob.iglob(‘./test/*.*’): print(name) # ./testsample1.txt # ./testsample2.txt # ./testsampleA.txt Enter fullscreen mode Exit fullscreen mode 参考 Checkout more…

Read More

Python 標準ライブラリ hashlib ハッシュアルゴリズム – Python Dev Feed

Python 標準ライブラリ hashlib ハッシュアルゴリズム ライブラリhashlibを使うと種々のアルゴリズムでハッシュの計算を行えます。 ダイジェスト値計算 ダイジェスト値の計算はsha256()やmd5()等のアルゴリズムを示すコンストラクタにデータを指定し、digest()、hexdigest()を呼び出す事で行える。 digest()はバイト列、hexdigest()は16進数文字列を返却する。 import hashlib hashlib.sha256(b’test’).digest() # => b’x9fx86xd0x81x88L}ex9a/xeaxa0xc5Zxd0x15xa3xbfOx1b+x0bx82,xd1]lx15xb0xf0nx08′ hashlib.sha256(b’test’).hexdigest() # => ‘9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08’ Enter fullscreen mode Exit fullscreen mode アルゴリズムの指定はhashlib.new(name, [data, ]*, usedforsecurity=True)でnameにアルゴリズムの名称を渡すことでも行える。 hashlib.new(‘sha256′,b’test’).digest() # => b’x9fx86xd0x81x88L}ex9a/xeaxa0xc5Zxd0x15xa3xbfOx1b+x0bx82,xd1]lx15xb0xf0nx08′ hashlib.new(‘sha256′,b’test’).hexdigest() # => ‘9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08′ Enter fullscreen mode Exit fullscreen mode データはupdate(data)で設定できる。 sha = hashlib.sha256() sha.update(b’test’) sha.digest() # => b’x9fx86xd0x81x88L}ex9a/xeaxa0xc5Zxd0x15xa3xbfOx1b+x0bx82,xd1]lx15xb0xf0nx08′ sha.hexdigest() #=> ‘9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08’ Enter…

Read More

Python 標準ライブラリ hmac HMACアルゴリズムのハッシュ – Python Dev Feed

Python 標準ライブラリ hmac HMACアルゴリズムのハッシュ HMACアルゴリズムのハッシュはライブリhmacで計算できます。 ダイジェスト値の計算は`sha256 hmac.digest(key, msg, digest) `pythonimport hmac hmac.digest(b’key’, b’test’, ‘MD5’) ` new(key, msg=None, digestmod=”)でhmacのインスタンを取得し、updateでメッセージを指定してから、digest()で計算しても同じ結果を取得できる。 `pythonmd5 = hmac.new(b’key’, digestmod=’MD5′)md5.update(b’test’)md5.digest() ` メッセージの指定はupdateで分けて行うこともできる。 `pythonmd5 = hmac.new(b’key’, digestmod=’MD5′)md5.update(b’te’)md5.update(b’st’)md5.digest() ` ハッシュの情報 pythonmd5 = hmac.new(b’key’, digestmod=’MD5′)md5.update(b’test’)md5.hexdigest() # => ダイジェスト値16進数文字列 1d4a2743c056e467ff3f09c9af31de7emd5.digest_size # => HMAC ダイジェストのバイト数 16md5.block_size # => ハッシュアルゴリズムのブロックのバイト数 64md5.name # => アルゴリズムの名称 ‘hmac-md5’ 参考 Checkout more Articles…

Read More

Python 標準ライブラリ secrets セキュリティ用途の乱数 – Python Dev Feed

Python 標準ライブラリ secrets セキュリティ用途の乱数 ライブラリsecretsを使うと、セキュリティトークンや認証で使うための強度のある乱数を生成できます。 ランダムな要素の選択 import secrets secrets.choice([1,2,3]) # => 1 Enter fullscreen mode Exit fullscreen mode ランダムな整数値 secrets.randbelow(3) # => 3未満のランダムな整数 secrets.randbits(8) # => ランダムな8ビット整数 Enter fullscreen mode Exit fullscreen mode トークン # バイト文字列 secrets.token_bytes(8) # => b’xe9xc8wx8cDZxf2:’ # 16進数文字列 secrets.token_hex(8) # => 5b0aa697f5c9bd2d # URLで使えるBASE64エンコード済みの文字列 secrets.token_urlsafe(8) # => ‘-hCSkNaBmfA’ Enter fullscreen mode…

Read More

Python 標準ライブラリ zlib gzip互換圧縮 – Python Dev Feed

Python 標準ライブラリ zlib gzip互換圧縮 gzip互換の解凍・圧縮やAdler-32チェックサム、CRC(Cyclic Redundancy Check、巡回冗長検査)チェックサムの計算を行えるライブラリです。 圧縮と解凍 zlib.compress(b’AbcDef’) # => zlib.compress(b’AbcDef’) zlib.decompress(b’xx9csLJvIMx03x00x06xfex02x16′) # => b’AbcDef’ Enter fullscreen mode Exit fullscreen mode Adler-32チェックサム Adler-32 – Wikipedia zlib.adler32(b’AbcDef’) Enter fullscreen mode Exit fullscreen mode Cyclic Redundancy Checkチェックサム 巡回冗長検査 – Wikipedia zlib.crc32(b’AbcDef’) Enter fullscreen mode Exit fullscreen mode 参考 zlib — gzip 互換の圧縮 Checkout more Articles on…

Read More

Python 標準ライブラリ gzip gzipファイルの圧縮と展開 – Python Dev Feed

Python 標準ライブラリ gzip gzipファイルの圧縮と展開 ライブラリgzipを使うことで、gzipファイルの圧縮と展開を行うことができます。 gzip.openを使ったgzipファイルの圧縮と展開 open(filename, mode=”rb”, compresslevel=9, encoding=None, errors=None, newline=None) import gzip with gzip.open(‘./text.gz’, ‘wb’) as f: text = ‘テストファイル’.encode(‘utf-8’) f.write(text) with gzip.open(‘./text.gz’, ‘rb’) as f: read_text = f.read() print(read_text.decode()) Enter fullscreen mode Exit fullscreen mode 存在するファイルのgzip圧縮 import shutil with open(‘./sample.txt’, ‘rb’) as f_in: with gzip.open(‘./sample.txt.gz’, ‘wb’) as f_out: shutil.copyfileobj(f_in, f_out) Enter fullscreen…

Read More

Python 標準ライブラリ bz2 bzip2圧縮と展開 – Python Dev Feed

Python 標準ライブラリ bz2 bzip2圧縮と展開 ライブラリbz2を使うとbzip2圧縮と展開を行うことができます。 bz2.openを使ったbzip2ファイルの圧縮と展開 bz2.open(filename, mode=”rb”, compresslevel=9, encoding=None, errors=None, newline=None) import bz2 with bz2.open(‘./text.bz2’, ‘wb’) as f: text = ‘テストファイル’.encode(‘utf-8’) f.write(text) with bz2.open(‘./text.bz2’, ‘rb’) as f: read_text = f.read() print(read_text.decode()) Enter fullscreen mode Exit fullscreen mode 存在するファイルのbzip2圧縮 import shutil with open(‘./sample.txt’, ‘rb’) as f_in: with bz2.open(‘./sample.txt.bz2’, ‘wb’) as f_out: shutil.copyfileobj(f_in, f_out) Enter fullscreen…

Read More