Pythonお勉強スレッド __part3__
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://www.python.jp/Zope/
www.python.org
http://www.python.org/
comp.lang.python
http://groups.google.com/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&group=comp.lang.python
前スレ
http://pc3.2ch.net/test/read.cgi/tech/1020718991/
ログや関連リンクは >>2-4
01532/3
NGNGexcept getopt.error, e:
sys.stderr.write(str(e) + "\n")
sys.exit(1)
convert = tabify
for opt, val in options:
if opt in ["-t", "--tabify"]:
convert = tabify
elif opt in ["-u", "--untabify"]:
convert = untabify
elif opt in ["-h", "--help"]:
sys.stderr.write(USAGE % os.path.basename(sys.argv[0]))
sys.exit(0)
if not args:
args = ["-"]
for filename in args:
try:
if filename == "-":
file = sys.stdin
else:
file = open(filename)
while 1:
line = file.readline()
if not line:
break
01543/3
NGNGif file is not sys.stdin:
file.close()
except IOError, e:
sys.stderr.write(str(e) + "\n")
def tabify(s, re_hankaku=re.compile("^[ \t]+")):
return re_hankaku.sub(to_zenkaku, s)
def untabify(s, re_zenkaku=re.compile("^(%s)+" % SPACE)):
return re_zenkaku.sub(to_hankaku, s)
def to_zenkaku(m):
return string.replace(string.replace(m.group(), "\t", " "), " ", SPACE)
def to_hankaku(m):
return string.replace(m.group(), SPACE, " ")
if __name__ == "__main__":
main()
0155デフォルトの名無しさん
NGNG2chにスクリプトをコピペするとインデントが消えてしまうんで
行頭の空白文字を全角スペースに置換するスクリプトを作ってみた。
よかったら使ってほすぃ。改造、流用、再配布はご自由に。
tabify.py input.py > output.txt コピペ用のテキストに変換
tabify.py -u input.txt > output.py 元のスクリプトに戻す
ちなみに上のコピペは全角スペースに置換されている。
最初だけテキストエディタの置換機能か何かで半角スペースに戻す
必要がある。“unzip.zip”状態でスマソw
0156155
NGNG:
return string.replace(string.replace(m.group(), "\t", " "), " ", SPACE)
:
return string.replace(m.group(), SPACE, " ")
:
最初の " " は半角スペース4個、あとの二つの " " は半角スペース2個でつ。
やっぱ2chにスクリプトのコピペは無謀か。。。=□○_
0157デフォルトの名無しさん
NGNGsf なり、フリーのウェブサイトを用意したら?
ここに貼り付けるのではなく。
0158150
NGNGhttp://www.geocities.co.jp/SiliconValley/5174/
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGlinuxでも動いたよ。
フォント着ちゃないけど。
0161デフォルトの名無しさん
NGNGGUI関連で将来は苦労しそう。
0162デフォルトの名無しさん
NGNGという環境で試しますた。
>>160 フォントはこれできれいになった。AAも完璧!(・∀・)イイ! font=("MS PGothic",12)
→ font="-mona-gothic-medium-r-normal--14-130-75-75-p-140-jisx0208.1990-0"
Pmw.ScrolledListBox.__init__( ... )
追加 self._listbox.config(font="k14")
self.config(relief=Tk.SUNKEN, height=1, anchor=Tk.W)
→ self.config(relief=Tk.SUNKEN, height=1, anchor=Tk.W, font="k14")
それと、漏れの環境ではなぜか insert() するとき明示的に UTF-8 にしてやらないとだめぽ。
self.insert(Tk.END, category.name)
→ self.insert(Tk.END, category.name.encode("utf-8"))
それぞれ似たような修正点が複数ヶ所あるけど割愛。
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG>漏れの環境(中略)UTF-8
BeOSですか?
0167デフォルトの名無しさん
NGNG>>158からたどれるだろ。
0168デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG赤帽7.3をBeOSと誤読するヤシも珍しいなw
0171162
NGNGAAのズレがほとんどなくなる。フォント名はコレ↓
-mona-gothic-medium-r-normal--16-150-75-75-p-160-jisx0208.1990-0
ついでにいくつか要望を。
(1) title だけじゃなく iconname も設定してホスィ。
self.title("KittyWalk")
self.iconname("KittyWalk") # 追加
(2) コデックは sjis じゃなく ms932 の方がヨサゲ。機種依存文字が〓にならずに済む。
(3) 大型のAAが悲しいことになるので行末の折り返しを無効にできるようにしてホスィ。
漏れはこんな風にしてみた。
class GUI(Tk.Tk):
def toggle_word_wrap(self): # 追加
self.message_view.toggle_word_wrap()
class MessageView(Pmw.ScrolledText):
def toggle_word_wrap(self): # 追加
if self._textbox["wrap"] == Tk.NONE:
self._textbox.config(wrap=Tk.WORD)
else:
self._textbox.config(wrap=Tk.NONE)
class MenuBar(Tk.Menu):
def build(self):
bbsmenu.add_command(label="Toggle word wrap",
command=self.master.toggle_word_wrap) # 追加
0172162
NGNGスレタイトル中の実体参照も同じように変換する必要があると思われ。
def render_message(self, message):
:
# 以下のように変更
for old, new in [(u"<br>",u"\n"),
(u"<BR>",u"\n"),
(u"<a .*?>",u""),
(u"</a>",u""),
(u"?[A-Za-z0-9]+;", self.replace_entref)]:
text = re.sub(old, new, text)
# 以下、追加
import htmlentitydefs
entity_dict = {}
for k, v in htmlentitydefs.entitydefs.items():
if v[:2] == "" and v[-1] == ";":
v = unichr(int(v[2:-1]))
else:
v = unicode(v, "iso-8859-1")
entity_dict[u"&%s;" % k] = v
def replace_entref(self, match):
key = match.group()
if key[1] == u"#":
return unichr(int(key[2:-1]))
return self.entity_dict.get(key, key)
0173デフォルトの名無しさん
NGNGSubject: Displaying and Inputting Japanese
わかる人いたら、だれか答えてあげて
0174デフォルトの名無しさん
NGNG蟻さん、Martinに撃沈されちゃった?w
彼の口調は相変わらず厳しいなあ。
0178デフォルトの名無しさん
NGNGdatをダウソするときに必要な量だけダウソするようにしてはどうか?
(CookBookにヒントが載ってる)
0179150 ◆ismFPlKHko
NGNGどうもありがとうございます。
ちょこちょこ取り込んでいってまして、これからhtmlentitydefs を調べてみます。
こんなのあったのか。
>>178
要望リストにいれときます。あぼーん記事の判別に苦戦しそうですが。
0180デフォルトの名無しさん
NGNGこのスレはちゃんと読んだ?
monazilla Part 3
http://pc3.2ch.net/test/read.cgi/tech/1012544484/
0182デフォルトの名無しさん
NGNGありがと。何とかできそうだよ。ウンコ以下だけど。
0183162
NGNG・True を使ってるから Python 2.3a1 でないとダメポ。仕様?
・~/.kittywalk/config がデフォルト設定で上書きされる。たぶんバグ。
・実体参照の置換処理に re.sub() を使わないのはなぜ?
パフォーマンスが全然違うよ。それと、実体参照の正規表現が
&#?[A-Za-z0-9]+?; になってるけど二つ目の ? は要らなくない?
・んなこた分かってると言われるのを覚悟で書くと、
match = re.search(u"&#?[A-Za-z0-9]+?;", text[start:])
text[start:] のような部分文字列を作る処理は重いのでできるだけ
避けた方がいい。この場合は re.search(regexp, text, start) と書く。
はっきり言って Python は新しい文字列オブジェクトを作る処理が重い。
先回りしとくと text += substring のような処理も同様。部分文字列を
いくつも連結するような処理はリストに append して後で join する方が軽い。
・re.match() や re.search() は呼び出されるたびに正規表現文字列を
コンパイルする。何度も使う正規表現は re.compile() で予めコンパイル
しておく方が効率がよい。
漏れは蛇使いとしては古参の部類に入ると思うんで最近のバージョンの
パフォーマンスの改良には疎い。まあ話半分で聞いてくれ。
0184デフォルトの名無しさん
NGNGTrue, False = 1, 0
だったり。
2.3ではちゃんとboolクラスのインスタンスリテラルなんだが。
Pythonバージョンのバージョン調べて(sysモジュールな)
上のコード追加すりゃなんとかなりそうな。
0185デフォルトの名無しさん
NGNGの方が正確だけど複雑すぎるか>実体参照
0186デフォルトの名無しさん
NGNGマニュアルを見ましたが、よくわかりません。
0187IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0188デフォルトの名無しさん
NGNGcd /usr/lib/python2.2/site-packages
tar zxf ~/Pmw.1.1.tar.gz
0189150 ◆ismFPlKHko
NGNG>・True を使ってるから Python 2.3a1 でないとダメポ。仕様?
>>184 で書かれているように、True, False が定義されていないければ、
True, False = 1, 0 するようにしてみます。
>・実体参照の置換処理に re.sub() を使わないのはなぜ?
>パフォーマンスが全然違うよ。それと、実体参照の正規表現が
...
>text[start:] のような部分文字列を作る処理は重いのでできるだけ
...
>コンパイルする。何度も使う正規表現は re.compile() で予めコンパイル
>しておく方が効率がよい。
大きい dat ファイルを処理するときに、
ものすごく時間がかかっている気がするので、
このあたりを参考にします。
>>185
>"&(#([0-9]+|[xX][0-9a-fA-F]+)|[a-fA-F][a-fA-F0-9]*);"
>の方が正確だけど複雑すぎるか>実体参照
"?[A-Za-z0-9]+;" で引っかかった文字列が、
実体参照の辞書で定義されていなければ、放置するので、
大丈夫かなぁ、と楽観的に考えています。
正確じゃないと、気持ち悪いでしょうか>みなさま
Monazilla.org からリンクされててビクーリ。
先にダウンロードまわりを手直しします。
0190デフォルトの名無しさん
NGNGポイズン
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGスパムスビ
0194デフォルトの名無しさん
NGNG0195184
NGNG> "&#?[A-Za-z0-9]+;" で引っかかった文字列が、
> 実体参照の辞書で定義されていなければ、放置するので、
> 大丈夫かなぁ、と楽観的に考えています。
あ、そういうことなら無駄に複雑にする必要はないですね。
あちしも期待しております、がんがってください。
0196デフォルトの名無しさん
NGNGついでに184のアホtypoは見なかったことにして下さい(汗)
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0199デフォルトの名無しさん
NGNGあとニュースなんだからちゃんと「IPアドレス」って書け。
なんか投票までやってるし。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGもしかして企業とかが・・・なんてね(^^)
みんなアクセスログなんて言葉聞いたこともないよな?
0202デフォルトの名無しさん
NGNGhttp://linux.ascii24.com/linux/linuxmag/update/
ってか今朝UPされた?
0203デフォルトの名無しさん
NGNGへぇー、結構多いね
0204デフォルトの名無しさん
NGNG痛々しい事はいいです(ていうか見てるこっちが辛い)
今用件を伝えますから電話しましょう。
ずばっと出て下さい
度量の小さい人は無理だろ、か。
0205デフォルトの名無しさん
NGNG小一時間ダメだったんだが、まあいいか。
0206162
NGNGkittywalk20030110a (・∀・) イイ!スレの表示速度が速くなって快適っす。
ところでブックマークのスレタイトルにレス数が入るのは仕様ですか?
ブックマーク追加時のレス数のまま更新されないみたいなんですが。
0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGここにくるだけ無駄だってことがわかった。
皆も早くほかのことに興味を持とうな。
では、さようなら
0209デフォルトの名無しさん
NGNG木構造を実現したいのだが、ポインタのやり方がわからん
0210デフォルトの名無しさん
NGNGああ、まったくだ
0211デフォルトの名無しさん
NGNG他の場所に書いてあったが、下手すりゃ人生が変わる覚悟をしてまでそこまで
やる奴がどれ位いるか。
ただでさえ告発者が叩かれる国なのに。
0212デフォルトの名無しさん
NGNGPythonじゃ全オブジェクトがポインタみたいなもん(つーか参照)だから、
class node:
def __init__(self, c=None, l=None, r=None):
self.c = c
self.l = l
self.r = r
a = node(1, node(2), node(3, node(4)))
a.l.r = node(5)
print a.r.l.c
とか、C/C++のように、アドレスとかアドレスの指している先とかは
考えなくても、単に代入と参照でOKでしょ?
0213150 ◆ismFPlKHko
NGNG> ところでブックマークのスレタイトルにレス数が入るのは仕様ですか?
その事実に気づいていなかっただけです。次のバージョンで直しておきます。
文字列処理の無駄を省くのも、次回で。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGネタにマジレスでわ?
ちょっと前にも別のスレで「pythonに構造体はないの?」
とか書きこんで「クラスか辞書使えば?」とか言われても
「じゃあpythonには構造体がないんですね、構造体がない
言語なんてクソですね」みたいなネタがあったけど。
0216デフォルトの名無しさん
NGNG手の込んだあらしかたするねぇ。。。。ハァ
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221162
NGNGあ、厭味に聞こえたらゴメン。仕様でもいいかなと思ったので。
Update board menu みたいな方法で更新をかけて未読レスがあったら
新しいレス数と一緒にスレタイトルを色付きで表示、とかやってくれると
嬉しいかも。
0222デフォルトの名無しさん
NGNGこれが2CHにVirus Scriptやらブラクラやらを貼ったことを自慢した揚げ句、
別のコテハンがフシアナして挑発したらポートスキャンを掛け倒したのです。
410 名前: 投稿日:03/01/10 00:08 ID:h/ETIb2F
>401 名前:三毛 ◆MowPntKTsQ :03/01/10 00:04 ID:McoZGeeY
>ウィルススクリプト貼ってケツまくるような野郎が、「公序良俗」とは笑止の限り。
これが事実だったらどーすんの?(whhh
415 名前:三毛 ◆MowPntKTsQ 投稿日:03/01/10 00:15 ID:McoZGeeY
アサピーは、で
>あれは、そもそもスクリプトじゃないし単にノートンが糞だって言うだけの話。
などと言い訳をしておりまつ。
ではどーいう意図でああいうものを貼ったのか、内容をご説明頂きたいものですな。
417 名前:g056137.ppp.asahi-net.or.jp 投稿日:03/01/10 00:16 ID:6BZCtvnU
そんなに怖かった?
で、相手にログとられて晒し上げの上、朝になったらプロバイダにも抗議されてしまう、という。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGこんな感じなのかもね。
0225デフォルトの名無しさん
NGNGされたら「表現の自由を奪う」と言ってみたり、「内部告発者を守れ」
とか言ってた癖に、ひろゆきが裁判で負けた事が良い事であるかの
ように報道するマスコミのダブスタは許せん!
0226デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0227デフォルトの名無しさん
NGNG大学とか無線LANの穴多そうだし。
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGhttp://www.nan.sakura.ne.jp/winny/page/tools.htm
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG何を考えていらっしゃるのやら。
0235デフォルトの名無しさん
NGNG0236162
NGNGメニューのフォント設定が効いてないところがありますた。
class GUI(Tk.Tk):
def make_widgets(self):
boardmenu_tab = notebook.tab(0) # 追加
boardmenu_tab.config(font=CONFIG.get("Menu","Font")) # 追加
bookmark_tab = notebook.tab(1)
bookmark_tab.config(font=CONFIG.get("Menu","Font")) # 追加
class ThreadMenu(Pmw.ScrolledListBox, Colleague):
def __init__(self, mediator, parent):
self.component("label").config(font=CONFIG.get("Menu","Font")) # 追加
class MessageView(Pmw.ScrolledText, Colleague):
def __init__(self, mediator, parent):
self.component("label").config(font=CONFIG.get("Menu","Font")) # 追加
class MenuBar(Tk.Menu, Colleague):
def build(self):
*.add_command(...
font=CONFIG.get("Menu","Font"), # 追加(複数)
self.add_cascade(...
font=CONFIG.get("Menu","Font"), # 追加(複数)
スレタイトルをダブルクリックしてスレを再表示するたびにどんどん
スレ内容が重複していくみたいです(バグ?)。
スレ一覧のタイトルにレス数が付かないのはチョト寂しいです(感想)。
スレ一覧から目的のスレを探すのが結構大変なので検索できるとイイかも(要望)。
0237デフォルトの名無しさん
NGNG絶好のチャンスだと思うけどな
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGヽ(´ー`)ノ
0240デフォルトの名無しさん
NGNGほとんどの人が何かの形でサークルに関わってるわけじゃん。
自分や知ってる奴が叩かれてるのをわざわざ喜んで見に来たりしないだろ
狭い世界だからサークル活動に悪い影響与えてるとおもうよ
「同人板で叩かれるから」って理由でコピー本やめたサークルや
褒めのカキコがあった直後「自作自演したって思われるとくやしいし
名前でたら叩かれる」ってサイト閉じたとこも…
0241150 ◆ismFPlKHko
NGNG> メニューのフォント設定が効いてないところがありますた。
感涙。
> スレ一覧のタイトルにレス数が付かないのはチョト寂しいです(感想)。
>>161 で言われたとおり、GUI で苦労しておりまする。
とりあえず、その場しのぎしときました。
0242デフォルトの名無しさん
NGNG2ちゃんからリンクして拾ってくるようにできんかな?
0243デフォルトの名無しさん
NGNG厨房逝ってよし。
0244デフォルトの名無しさん
NGNG人がいるけど、それって何をするとでるの?
俺は見たこと無い。
0245デフォルトの名無しさん
NGNGTkinterはどちらかと言うと楽にGUIを組めるツールキットだと思う。
押し着せの仕様に逆らってトリッキーなことをやり出すと苦労するけど。
そのツールキットのやり方に従って素直に作るのであれば
かかる手間暇はどのツールキットを使ってもそれほど大差ない思われ。
0246デフォルトの名無しさん
NGNGTkinterが使いにくいというのは迷信の塊。個人的には他のが好きだが。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGフォームデザイナー付きのIDEだって。
売り物らしいけど評価版があるってさ。
0249山崎渉
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG0252162
NGNG変な正規表現 (閉じ括弧がない等) を食わせるとエラーを吐くので要対策。
あと、下まで検索したら上に戻るとか、下から上に向かって検索とか、
そういう割とありがちなオプションがあると嬉しいかも。
■ このスレッドは過去ログ倉庫に格納されています