Python で CLI のコマンドを実行したいときは subprocess モジュールを使う。 subprocess モジュールを使う以外にもやり方はあるみたいだけど、それらは obsolete らしい。 本題だけど subprocess モジュールを使ってコマンドを実行したときに、返り値を見ながら標準出力、標準エラー出力の内容も得る方法が意外と見つからなかった。 subprocess.check_call() 関数を使えば返り値が見られるけど標準出力、標準エラー出力が得られなさげ。 subprocess.Popen クラスを使うと標準出力、標準エラー出力は得られるけど返り値はどう得られるんだろう? ドキュメントを読んだりソースコードを見ていった結論が以下。 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__m
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ドキュメントに書いてあっても 読んでない or 忘れていた 私のためのメモ。 Pythonで 子プロセスを実行するときには subprocess モジュールを使うことが推奨されています。 その子プロセスの標準出力やエラー出力を受け取るときに、 p.stdout.read() や p.stderr.read() を使っていると 子プロセスの出力するデータ量が多い時に 刺さって しまいます。代わりに p.communicate() を使うと良いです。 その件については、下記ドキュメントの中段辺りに http://docs.python.jp/2.7/library/subprocess.html 警告 stdin.write(), stdout.read(), stderr.read() を利用すると、別のパイプのOSパイプバッファがいっぱいになってデッドロックする恐れがあります。これを避ける
昨日 XMLTestRunnerで標準出力を結果に出すやつを書いたら、@aodag 先生から、こんな指摘をもらった。 @aodag 「なんで自分XMLTestRunnerなんて使ってん? noseならオプションで標準出力の制御できんのに。」 という事で、使った事のある noseのオプションの覚え書き。 昨日のヤツ XMLTestRunner の 標準出力(stdout) どこいった? - Study08.net 対シンバシ殲滅用人型機動兵器 標準出力の表示(-s or --nocapture) $ nosetests -s -v -w apps これで print文で出力した内容が結果として表示される。 -v と -w とかはググれば出てくるので説明割愛 一緒にXUnit系のXMLも吐き出したい (--with-xunit) $ nosetests --with-xunit -s -v -
昔、どうしたらいいですかね?って先輩に聞いたら 「Pit使うと良いよ」と教えていただいて、それ以降Pitを使っている。 Pitはソースに直接書きたく無い情報を~/.pit以下に簡単に保存してくれて便利。 yamlで保存してくれるのでいろいろな言語で使える。 (調べたらPython、Ruby、Perl、PHPでは使える。) Pythonで使う例 $ EDITOR=vi python ... >>> from pit import Pit >>> key = { 'key1' : 'value1', >>> 'key2' : 'value2'} >>> Pit.get('title', {'require' : key}) pythonを起動するときにEDITORをviに設定してあげる。 そして上のを打ち込んだらviが立ち上がるので、 そのまま保存して終了(viの保存終了のコマンド :wq)
Python 2 まであった dict.has_key(key) が Python 3 から消え,互換性がなくなりました。 # Python2 RiSK = {'blog': 'http://d.hatena.ne.jp/RiSK/'} RiSK.has_key('blog') # True これを Python 3 で実現するには key in dict を使います。 # Python3 RiSK = {'blog': 'http://d.hatena.ne.jp/RiSK/'} 'blog' in RiSK # True その他の方法 →Python3.Xで辞書型のhas_key()が使えなくなる件 Fraxinus/ウェブリブログ
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
詳しい事のいきさつは知らないが、ここ(http://subtech.g.hatena.ne.jp/cho45/20080102/1199257680)で初お目見えして、その後にここ(http://d.hatena.ne.jp/jYoshiori/searchdiary?word=*[Pypi])でPython版が作られたPitという大変便利なアカウント管理の使い方をわかりやすく説明してみる。(わかりにくかったらゴメンナサイ) Pit使うと何が嬉しいか? 例えばWebAPI使う時に、DevelopperIDだったり、自分のIDやPasswordをスクリプトに直接書いたりする事ありますよね? # coding:utf-8 from pyhatebu import PyHatebu usrID = nameHoge passwd = hirakegoma h = PyHatebu(userID,
パスワードをgit commit する前に検討したい、3つの回避方法 GitHub便利ですね。無料で自身のソースコードを管理できます。しかし無料プランだとソースコードは全世界に公開されてしまいます。有料プランですと月7 USドルでソースコードを非公開にできますが、結構お高めなので払っている人は少ないのではないでしょうか? 外部リソースにアクセスするプログラムを書いていると、config にパスワードを書いてしまいたい衝動に駆られます。しかし過去の事件について思いを馳せてみてください。クラウドサーバを生成する権限はお金になります。BitCoinマイニング目的でEC2 インスタンスを不正利用された事例は国内でも数件発生しています。本当にそのパスワードをconfig に書いて大丈夫でしょうか。 この記事ではgit にcommit しないで上手にパスワードを管理する技術について考えていきます。 a
2013/12/02 00:00 ※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 DevOpsですね!CIですね!botですね! Python Advent Calendar 2013 の2日目です。 スクリプトにパスワードを書きたくないときのお話。 鍵でノーパスワードログインできるなら良いですが、ID/Password渡さないといけない場合もありますよね。 本エントリはOS X 10.9、Python3.3.3rc1で確認しています。 実行時に入力してもらう 書きたくないのであれば、入力してもらえば良いですね。 ビルトイン関数のinputでどうでしょう。 >>> pswd = input('input your passowrd: ') #python2では raw_input でした input your passowrd: passwor
プログラマーのトムです。偽名です。 Pythonをゴリゴリやってます。といってもJSを書いてる時間の方が長いです! FabricはPython3系に対応していなかったので、まだPython2.6と2.7で書いていますが、新しいプロジェクトはPython3で開発しています。 もともとPython2系で開発していたので、Python3に移行してハマったことを紹介します。 Python3に移行したのは、やはりDjangoが対応したことが大きいです。 他にも、Python3ならコードキャッシュが__pycache__に作られるので邪魔になりません。 Python3で変わったこと 2系で使えていたモジュールやメソッドがなくなったり、書き方が変わったり代替方法が用意されています。 まだ変更点を全て網羅できていませんが、印象に残っている変更点を。 シンプルになったところは、親メソッドの呼び出しがシンプル
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く