(void*)Pないとスマートフォン用の表示で見る(void*)Pないとこの広告は、90日以上更新していないブログに表示しています。11:56Pythonで一意な文字列を生成するTweet広告を非表示にするもっと読むコメントを書く2017-04-15Argparseを使ったコマンドライン引数の管理Python3通常コマンドライン引数を扱うにはsys.argvを使います。1010とてもシンプルですね。実際にちゃんとしたプログラムを組む場合、例えばコマンドライン引数が渡されなかった場合に例外にしたり、もしくはデフォルト値を設定したり、ハイフン始まりのオプション引数を用意したり、そういうことをやろうと思うとどんどん複雑になっていきます。Argparseを使えばそういうったものをとても楽に実装することができます。ドキュメントとりあえず基礎的なものをいくつか実例で動作確認してみます。exit特に何も設定してない状態でも「-h」と「--help」が設定されます。省略可能な引数を一つ設定する、省略時はデフォルト値が使われる。1010nargsに'?'を設定すれば省略可能な引数を定義できます。defaultで省略時の値を設定できます。オプション引数を設定する。「-f」のようなハイフンで始まる独自のオプション引数を設定してみます。FOOhelpを見ると-fが追加されてるのが分かりますね。-f=100100この用に値を渡せます。スペース空けたり空けなかったり、「=」を付けたり付けなかったりしてもどちらでも動作します。型の変換をするコマンドライン引数は全て文字列型になります。'aaa'またtypeは単に関数を指定するだけなので独自の関数を指定することで任意の変換処理をさせることができます。aaa[aaa]フラグ系のオプション引数を設定する。値を設定する必要がない真偽値だけを持つオプション引数を設定してみます。--barTrue他にも各引数にコメントを付けたりだとか色々機能はありますが、とりあえずこの辺りだけ覚えておけば実用に供すると思います。01:49Argparseを使ったコマンドライン引数の管理Tweet広告を非表示にするもっと読むコメントを書く2017-04-14subprocessを使って外部プログラムを実行するPython3https://docs.python.jp/3/library/subprocess.htmlsubprocessには色々な関数が定義されているのでとりあえずいくつか使いそうなものを試してみます。例としてPythonから別のPythonのプログラムを実行する処理を実装してみます。subprocess.check_callによる簡易的な外部プログラムの実行まずtest.pyを用意します。end!')これをmain.pyから実行してみます。end!check_allは子プロセス(test.py)の終了をまってから次の処理へ進みます。外部プログラム側で何かしら例外で終了した場合はcheck_callでも例外を投げます。1.subprocess.check_outputで実行されたプログラムの標準出力を得るcheck_callと違い、こちらは外部プログラムで実行された標準出力を実行側で文字列で取得することができます。end!ちなみにcheck_outputの戻り値はバイナリ文字列になってるのでdecodeで文字列化してから出力してます。subprocess.runによる外部プログラムの実行Python3.5以上からはcheck_callやcheck_outputよりも柔軟なrunを使うこともできます。check_callをrunで置き換えると以下のようになります。end!')check_outputをrunで置き換えると以下のようになります。stdout=subprocess.PIPE).stdoutprint(output.decode('sjis'))他にも色々できるようですが、ここでは割愛。目的がハッキリしている場合はcheck_callやcheck_outputでも良さそうですね。通常ではcheck_allやcheck_output(およびrun)などを使えばそれで基本的には問題がでることはありませんが、例えば子プロセスの終了をまたずに何か処理をしたいとかそういうことをしたい場合にはPopenを使います。end!」が出力されていますね。15:53subprocessを使って外部プログラムを実行するTweet広告を非表示にするもっと読むコメントを書く2017-04-13with文を利用したファイルの読み書きPython3例えば以下のようなファイルの読み込み処理があるとします。fh.read()with文を使うとcloseを明示的に呼ぶ必要がなくなります。with文のスコープを抜けた時点で自動的に呼ばれます。便利なので基本的にはファイルの入出力では使った方が良いですね。with文自体の仕様についてはまた今度。8.1ファイルの読み書きです。テキストデータの書き込み処理。openの第二引数にwを指定すると書き込みとなります。tはテキストモードでこれをbにすればバイナリモードのなります。main.pyこれでoutput.txtが作成されます。--hogehoge次はテキストデータの読み込みです。openの第二引数にrを指定すると読み込みとなります。main.py11sleep(1)で1秒スリープする感じです。float値でもいけるので0.5秒スリープしたりとかもできます。4}}辞書なので各要素にアクセスする時は以下のようになる。main.py4ただいちいち[]つけて書くのがめんどくさい。data.b.cとアクセスできた方が楽だし書きやすいよね。いうわけでattrdictというライブラリを使うことでそれが可能となります。main.py4便利ですね。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。