Tag/CUI
OptionParserメモ
Python 使ってコマンドラインからゴニョゴニョしようと思って、 調べてみたら OptionParser なんてものがあったので試してみたメモ。
6.21 optparse -- より強力なコマンドラインオプション解析器 を見ながらhoge.pyとかにして試してみる。
#!/usr/bin/env python
# vim: encoding=utf=8
from optparse import OptionParser
parser = OptionParser()
def main():
options, args = parser.parse_args()
print options
print args
if __name__ == '__main__':
main()
これだけでヘルプの表示までは出来るようになってるらしい。 -h か --help でヘルプが表示出来るらしく、 実際にやってみるとこんな感じになったよ。
$ ./hoge.py -h
Usage: hoge.py [options]
Options:
-h, --help show this help message and exit
ここからオプションを add_option なメソッドを使って、 必要なオプションを詰め込んでいけば良いらしい。 リファレンス見ながらやってみる。
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metabar="FILE")
parser.add_option("-q", "--quiet", action="store_false",
dest="verbose", default=True,
help="don't print status messages to stdout")
これでもう1回ヘルプを表示してみると、
$ ./hoge.py -h
Usage: hoge.py [options]
Options:
-h, --help show this help message and exit
-f FILE, --file=FILE write report to FILE
-q, --quiet don't print status messages to stdout
ちゃんと増えてるよ。 ここまで簡単に出来ると、 今までシェルで書いてたのがバカらしくなってくるなぁ。
実際に適当に実行してみて、 どんなふうに値が取れるのか見てみると、 キーワード指定したものはoptionsに、普通に指定したものはargsに入ってくるみたい。
$ ./hoge.py -f hoge.txt
{'verbose': True, 'filename': 'hoge.txt'}
[]
$ ./hoge.py -f hige.txt -q
{'verbose': False, 'filename': 'hige.txt'}
[]
$ ./hoge.py hoge -f hige.txt -q
{'verbose': False, 'filename': 'hige.txt'}
['hoge']
add_option の引数のキーワードの種類とか説明は、 リファレンスを見るのが一番良いって覚えておく。
- Posted at:
- 2008/03/09 00:26:16
- 0 Comments
- 1 TrackBack
- Trackback:
- http://humming.via-kitchen.com/2008/03/09/optionparser-memo/trackback/
UbuntuをGustyにアップグレードしたよ。
またまたリリースされた随分と間があいてからのアップグレード。
前回どうやったか全く覚えてなかったので、 とりあえずググってみたら、 Ubuntu Japanese Team の Ubuntuのサーバからネットワーク経由でアップグレードする方法 にばっちり書いてありました。
$ sudo do-release-upgrade
で、いけるらしい。 我が家の Ubuntu には既に入っていたので、 そのまま叩いてみた。
ssh 接続がどうとか、 PAM リビルドする際のどうとか、 /etc/bash.bashrc を置き換えるか?とか、 若干質問されたものの、 すんなりアップグレード終了。
前回のアップグレード の時は、 もうちょっとメンドクサイ事した様な気がするんだけども、 気のせいだったかな?
前回のアップグレード のエントリー見て、
実際やった事を何一つ書いてないのに笑えた!
相当焦ってたんだろうなぁ。自分 ![]()
- Posted at:
- 2008/02/23 00:30:59
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2008/02/23/upgrade-ubuntu-gusty/trackback/
Macでユーザの追加のやり方
Leopardになって、NetInfoが無くなってから、 どうやってユーザ追加するのかな?と思ってたら、 dscl ってコマンドで出来るらしいよ。
$ sudo dscl . -create /Users/<USERNAME>
$ sudo dscl . -create /Users/<USERNAME> UniqueID <uid>
$ sudo dscl . -create /Users/<USERNAME> PrimaryGroupID <gid>
$ sudo dscl . -create /Users/<USERNAME> UserShell </path/to/shell>
$ sudo dscl . -create /Users/<USERNAME> NFSHomeDirectory </path/to/home>
グループの追加はこんな感じらしい。
$ sudo dscl . -create /Groups/<GROUPNAME>
$ sudo dscl . -create /Groups/<GROUPNAME> PrimaryGroupID <gid>
【コラム】OS X ハッキング! (251) Leopard解体新書(2) ~さようならNetInfo~ | パソコン | マイコミジャーナル で、 結構詳しく解説してくれるよ。
迷ったときは、とりあえず、
$ dscl
>help
して、ヘルプみたら良いって覚えておく。
- Posted at:
- 2008/01/23 08:51:35
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2008/01/23/how-to-add-user-on-mac/trackback/
Macでパスワード付きzipを作る。
Mac でパスワード付きzipを作りたいと思って、 色々探しまわってみたら、 Zip Tools for Mac OSX なんてモノを見つけた。 これの中に入ってる zipcloak ってコマンドでパスワードを設定出来るらしい。
で、入れる前になんとなくwhichしてみたら、 10.5にデフォルトで入ってたよ。
// 圧縮自体はしてくれないので、先にやっておく。
$ zipcloak /path/to/hoge.zip
ってやると、パスワードを聞かれる。 2回聞かれるので、同じのを入力しておしまい。
デフォルトのアーカイブユーティリティだとエラー吐いて展開出来ないけど、 StuffIt Expander なら問題なく展開出来た。
- Posted at:
- 2008/01/15 05:24:49
- 0 Comments
- 1 TrackBack
- Trackback:
- http://humming.via-kitchen.com/2008/01/15/create-locked-zip-on-mac/trackback/
ホームディレクトリとか。
yoshuki さんと
「みんな $HOME な設定ファイルを svn で公開していこうよ。」
な話で盛り上がった!で、そのまま勢いで SVNレポジトリ 公開してみたよ。まだまだデフォルトそのままってのも多数なので、コレから充実させて行けたら良いなぁ。
個人的には .django_bash_completion が入ってるのがミソだと思い込んでおります!
- Posted at:
- 2007/07/04 00:18:02
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/07/04/my-home-directory/trackback/
DjangoのコマンドをTAB補完
教えて頂いた?参考にさせて頂いたのは monospace blog さんの コチラ のエントリー。
Django 使ってて未だにコマンドラインオプションをミスタイプとかをするわけで、何かいい方法は無いか?と毎回思ってました。
で、今回発見?したこの django_bash_completion !! Django のコマンドラインオプションをTAB補完させてしまう強者。なんか素敵!なんか素敵!
で、使用方法としては Django のtarballを展開した中に extras なディレクトリがあり、その中に django_bash_completion があります。それを .bash_profile なり .profile なりで読み込めば完了。今回はホームディレクトリ直下に .django_bash_completion とかにリネームしておいてみた。
まずは .bash_profile に以下を記述。
if [ -f ~/.django_bash_completion ]; then
. ~/.django_bash_completion
fi
ここで一度ログインし直すか、 .bash_profile を読み込み直す。
$ source ~/.bash_profile
最後はプロジェクトディレクトリでテスト。
$ cd /path/to/djangoproject
$ ./manage.py sy # ココでTAB
$ ./manage.py syncdb
もう一個ぐらいテスト。
$ ./manage.py st # ココでTAB
$ ./manage.py start # さらにTAB TAB
startapp startproject
素敵過ぎる!また一つ Django が好きになりましたとさ。
- Posted at:
- 2007/06/07 01:44:17
- 2 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/06/07/django-bash-completion/trackback/