33536e0faef54dfc9d5d7c96c5139f0aPythonで一意な文字列を生成する2017-04-15Argparseを使ったコマンドライン引数の管理Python3通常コマンドライン引数を扱うにはsys.argvを使います。10とてもシンプルですね。実際にちゃんとしたプログラムを組む場合、例えばコマンドライン引数が渡されなかった場合に...Argparseを使ったコマンドライン引数の管理2017-04-14subprocessを使って外部プログラムを実行するPython3https://docs.python.jp/3/library/subprocess.htmlsubprocessには色々な関数が定義されているのでとりあえずいくつか使いそうなものを試してみます。例としてPythonから別のPythonのプログラムを実行する処理を実装してみます。subprocess.check_callによ...subprocessを使って外部プログラムを実行する2017-04-13with文を利用したファイルの読み書きPython3例えば以下のようなファイルの読み込み処理があるとします。ファイルの読み書きです。テキストデータの書き込み処理。openの第二引数にwを指定すると書き込みとなります。tはテキストモードでこれをbにすればバイナリモードのなります。1sleep(1)で1秒スリープする感じです。辞書なので各要素にアクセスする時は以下のようになる。json...attrdictを使って辞書をオブジェクト変数としてアクセスできるように変換する2017-04-09importとfrom〜importについてもうすこしPython3モジュールのインポートについては以前学びましたがいまいち理解が追いついていなかったのでもっかいおさらい。importで読み込んだものがなんなのか、typeで調べてみます。helloworld関数を持つtest.pyを用意します。pr...importとfrom〜importについてもうすこし2017-04-06pipによるパッケージのインストールPython3世に公開されているたくさんのパッケージをインストールしたりなんかしたりするためのツールです。今回は試しにrequestsってのを入れてみることにする。requestsこれだけでrequestsというパッケージが使用可能となる。「(?P・・・)」という構文を使うと名前付きの後方参照ができます。参照するには「\g」と書きます。subで文字列の置換ができます。グループ化して後方参照することもできます。re.su...subによる文字列の置換2017-04-03リストから空要素を除去するPython3例えばsplitなどで以下のようなリストができることがあります。splitで文字列を分割しリスト化することができます。正規表現で分割もできます。re.split...splitによる文字列の分割2017-04-01文字列中のバックスラッシュについてPython3文字列の前にrをつけるとバックスラッシュを特殊文字として展開しないようになります。正規表現を書くときに使うと便利っぽいです。正規表現についてです。pythonの正規表現はなにやらいろいろメソッドがあったりして把握が大変なのでとにかく御託はいいから一番シンプルな使い方はなんなのってことで実装してみます。Python3からは古いスタイルよりもこの新しいスタイルの書式指定を使った方がよいとのこと。Python2でも3でも使える文字列の古いスタイルの書式指定方法。C言語でいうところのprintfみたいなものですね。10文字列に%演算子で繋げると書式が展開された文字列に変換されます。%演算子...Pythonでの書式指定出力(古いスタイル)2017-03-24引数リストのアンパックPython3例えば、リストやタプルの要素を個別に関数へ引数を渡す処理を実装したいとします。愚直に書くと以下のようになります。namedtupleを使うことで名前付きのタプルを作ることができます。このコードでbarとbazのプロパティを持つFooクラスが生成されます。次にFooオブジ...namedtupleによる名前付きタプル2017-03-22Pythonで独自クラスで配列をエミュレートしてみるPython3今回は演算子によるアクセスと、forループのみを実装してみます。配列のエミュレートをするには特殊メソッドを使います。re...Pythonで独自クラスで配列をエミュレートしてみる2017-03-21Pythonでの演算子のオーバーロードPython3Pythonでの演算子のオーバーロードは特殊メソッドで実現できます。全部網羅してるわけではないですが、いくつか列挙してみます。s...Pythonでの演算子のオーバーロード2017-03-20オブジェクトからクラスオブジェクトを得るPython3特殊メソッドである__class__からクラスオブジェクトを得ることができます。'__main__.Foo'>取れてますね。クラスには予め定義されている特殊なメソッドがたくさんあります。「__メソッド名__」というやつです。コンストラクタを実現する__init__も特殊メソッドのひとつです。classmethodデコレータを使うと、クラスメソッドを作ることができます。staticmethodデコレータを使うと、クラスに静的メソッドを作ることができます。プロパティの続きです。プロパティを定義する時にセッターを用意しなければ読み出し専用のプロパティを生成することができます。インスタンス変数に直接アクセスするのではなくゲッターやセッターを用意してそっちを使うっていうのは他の言語でもよくやりますね。愚直に実装するなら以下のようになります。この記事でprivateなインスタンス変数は定義できないと書きましたが、変数の先頭にアンダーバーを二個付けることでprivateに近い変数を定義できるということです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。