2010-01-01から1ヶ月間の記事一覧

python3.1にeasy_installをインストール

まず、公式の3.1版は無いので、 ここ から、ダウンロード。 そして、解凍して出来たフォルダの中でpython setup.py buildpython setup.py install ・・・しかし、windowsでは途中で処理が止まってしまう。どうやらバイナリファイルをテキストモードで読もう…

Python3xでは暗黙の相対importは削除

今更ながら、暗黙の相対importについて気づきました。 例。このような構成のモジュールを考えます。 spam/ __init__.py egg.py ham.py eggからhamをimportしようととします。 #egg.py import ham カレントディレクトリがspamで無い限り、Python3xではエラー…

RSSとAtom生成

Webページをリニューアルしたついでに、Atomを配信することにしました。 今までRSSは配信していて"PyRSS2Gen"を使っていましたが、 Atomは生成できないようなので、PyPIを探してみました。 「atom」で検索しても大量に出てきてわけがわからないので、「gen a…

PythonでPythonを出力する

Pythonにはクラスや関数を動的に生成したり変更したりする機能があるので、 明示的にソースコードを生成してexecする必要は必ずしも無いです。 しかし、execの方がデバッグしやすい or 効率が良い場合もあります。 namedtupleやturtleはexecを使って実装され…

フォルダアイコンの設定と削除

メモメモ from win32api import * from win32con import * def set_folder_icon(dirpath, iconpath, iconindex=0): desktopini_path = os.path.join(dirpath, "desktop.ini") WriteProfileVal(".ShellClassInfo", "IconFile", iconpath, desktopini_path) Wr…

object.__getattr__

>>> class Spam(object): def __getattr__(self, name): return super(Spam, self).__getattr__(name) >>> Spam().egg Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> Spam().egg File "<pyshell#4>", line 3, in __getattr__ return super(Spam, self).__ge</pyshell#4></module></pyshell#5>…

6人ミーティング

先日の迷路と同じサイトが、今度は筆記試験の問題を出していました。 6人でミーティングをする。 6人でミーティングをする。どの2人を取っても、初対面か会ったことがあるかのいずれかである。このとき、「互いに初対面の3人組」か「互いに会ったことの…

2.6から、**に任意のmappingを使える!

今更ながら関数呼び出しの**にユーザー定義型を使えるようになっていたのに気づきました。 >>> from collections import * >>> class X(Mapping): ... def __getitem__(self, k): return 0 ... def __iter__(self): return iter("xyz") ... def __len__(self…

迷路問題

人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか を解いてみました。 迷路の最短経路を捜す問題です。 ************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********…

10分でコーディングをPythonで

10分でコーディング|プログラミングに自信があるやつこい!! Pythonで書いてみました。 「すべてのプレイヤーは同じ枚数のカードを受け取らなければいけない」以外の部分はほとんど考える必要がありませんでした。むしろ、docstrings を書くほうに時間が…

PyQt4で色を選択するウィジェット

ダイアログを表示するのもいいですが、常に表示していてちょっとそこから選ぶ方が便利なので、 そういうのを作ってみました。 自作のユーティリティ(myutil、qutil)を使っているところもありますが、 書き直すのが面倒なので。 #encoding:shift-jis from __f…

正規表現を使ってコマンド行のような文字列を解析してリストに格納する

コマンド行のような文字列を解析してリストに格納する上でのメモ(後半) - 試験運用中なLinux備忘録 を正規表現を使って書いてみました。 re.splitだと、後でシングルクオートを追加したりするのが難しそうなので、 re.finditerでも書いてみました。 #encodin…

PyQtでファイルのドラッグ&ドロップ

スクリプトのアイコンにファイルを大量にドラッグ&ドロップしようとすると、 エラーが出るので、ウィンドウを作ってそこにD&D;させるスクリプトを書いてみました。 #encoding:shift-jis from __future__ import division, with_statement, print_function i…

キュートなタイマー

PyQtの練習でタイマーを作りました。日本語資料が少ないので大変。 それに、コンソール上Ctrl+Cで死んでくれない、 インタラクティブシェルでQApplicationを作ると入力が重くなって、 実質的にインタラクティブシェルでの実験は無理・・・ wxPythonより高度…

辞書をイテレートしながら変更すると危ない

#encoding:shift-jis from __future__ import division, with_statement, print_function # キーを 5 ずつずらそうとする d = dict.fromkeys([1, 3, 5]) for k in d: d[k + 5] = d.pop(k) print(d) # => {16: None, 18: None, 20: None} # !?!?!?!? printし…

かきぞめ

あけましておめでとうございます 寅年とは全く関係なく、金魚鉢のようなものを初めてのjavascriptで書いてみました。 Bloggerではjavascriptを投稿できないっぽいので、 ここに置いておきます。 本当は今日書いたのじゃないことなんて気にするのは私だけでし…