静かなる名辞

pythonとプログラミングのこと

ファイル操作

ファイルオブジェクトのcloseはflushも行う。確実にしたければfsync

以前、「ファイルオブジェクトのcloseメソッドは同時にflushも行う」ことを知りました。 どうやらcloseするときは内部でflushメソッドが呼ばれるようです。 このストリームをフラッシュして閉じます。 io --- ストリームを扱うコアツール — Python 3.7.3rc1 …

複数のnumpy配列を同時にシリアライズできるnumpy.savezの使い方を解説

はじめに numpy.savezは最近使ってみてけっこう良い感じだったのですが、日本語のわかりやすい説明が少なかったので解説記事を書いてみます。 なお、以下のドキュメントも併せて参考にしてください。numpy.savez — NumPy v1.15 Manual 基本的な使い方 まず、…

numpy配列の直列化方法によるファイル容量の違いを比較

はじめに numpy配列を直列化する方法はいろいろあります。numpyから使える方法に限っても4つあります*1。numpy.savetxt — NumPy v1.15 Manual numpy.save — NumPy v1.15 Manual numpy.savez — NumPy v1.15 Manual numpy.savez_compressed — NumPy v1.15 Manu…

【python】実行スクリプトからの相対パスでファイルを開く

pythonのファイルオープンの際のカレントディレクトリは実行時のshellのカレントディレクトリを引き継ぐ仕様なので(たしか)、スクリプト基準の相対パスだと思っていると悲しい思いをします。 具体的にはこんな感じです。 $ tree hoge hoge ├── aaa.txt └──…

【python】io.StringIOは便利なので使いこなそう

はじめに io.StringIOというものがあります。標準モジュールのioに属します。io --- ストリームを扱うコアツール — Python 3.7.1 ドキュメント これがどう便利かというと、「ファイルオブジェクトのように見えるオブジェクト」を作れます。スポンサーリンク …

【python】pythonで悲しい思いをしないためのファイルパス操作の基本

コマンドライン引数からパスを受け取って処理する、というプログラムはありがちなんだけど、適当に書くと適当なパスを渡したとき悲しい動作になったりするんだ(´・ω・`) 気をつけないといけないポイントを色々まとめておこう。一応linux環境で、python3.5以…

【python】print/pprintした結果をファイルに書き出す

まえがき pythonでデータ処理などを行うとき、中間出力をファイルに出力しておきたいことがよくある。 本来ならpythonオブジェクトを出力したいならpickleを使うのが正攻法だし、そうでなくても適切なフォーマットを作って出力するのが正しいやり方。とはい…