1 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:33:45 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>980 辺りで 前スレ くだすれPython(超初心者用) その2 pc11.2ch.net/test/read.cgi/tech/1218155094/ 関連スレ Pythonのお勉強 Part31 pc11.2ch.net/test/read.cgi/tech/1230821097/
348 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:56:00 ] universal feed parser使ってる人いる? パースした結果を普通のpythonオブジェクトに変換できないかな? パース結果が<class 'feedparser.FeedParserDict'>で戻ってくるのでjsonにうまく変換できない。。。
349 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:16:11 ] >>348 そのFeedParserDictとやらは新しいpythonならdictを継承してるから 「普通のpythonオブジェクト」として振舞うはず。 しかし、アイテムとして持ってるものの中でjsonでシリアライズできないものは 全て自前で変換コードを書く必要がある。 docs.python.org/library/json.html?highlight=JSONEncoder
350 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:43:33 ] >>349 うん。dictを継承してるから普通にシリアライズできると思ったんだが出来なかったので 何かやり方があるんじゃないかと思って聞いてみた。 まあ現実に出来てないんだから変換コードを書くしかないんだろうな。 踏ん切りついた。ありがとう。 ちなみにPython2.5でjsonライブラリは pypi.python.org/pypi/python-json/3.4 のを使った。
351 名前:350 mailto:sage [2009/02/08(日) 14:22:17 ] 解決したので自己レス。 どうやらjsonライブラリがよくなかったみたい。 deron.meranda.us/python/demjson/ をつかったら 特に変換コードを書かなくてもシリアライズできた。
352 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:22:19 ] そういうことがあるだな。
353 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:40:58 ] なるほど ありがとうございました
354 名前:デフォルトの名無しさん [2009/02/08(日) 16:38:35 ] a = {"123":"abc"} str(a) で出力される文字列が普通にjsonだったらいいのに・・・
355 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:01:22 ] JSONって"でないとだめなの? 'でもいける?
356 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:02:52 ] だめですよ
357 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:40:14 ] SocketServerを使ってサーバーを作ったのですが今接続しているクライアント全てに同じメッセージを送る方法が分かりません。 ご教示のほどよろしくお願いします。
358 名前:デフォルトの名無しさん [2009/02/08(日) 22:30:20 ] >>355-356 だよな。 読む方は下手にevalすると危ない気もするけど、 書く方はてがるに str() でJSONになればべんりなのにな。
359 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:36 ] a = [{"123":"abc"}, 4, 5, {"hage":"fuga",'suka':'pontan',"piyo":[123,456]}] str(a).replace("'",'"') ↓ [{"123": "abc"}, 4, 5, {"suka": "pontan", "hage": "fuga", "piyo": [123, 456]}]
360 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:44:03 ] >>> a = {"12'3":"ab'c"} >>> str(a).replace("'",'"') '{"12"3": "ab"c"}'
361 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:46:19 ] >>> a = {"12'3":"ab'c"} >>> str(a) '{"12\'3": "ab\'c"}'
362 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:12:31 ] おもしろいやつらだなお前らは
363 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:19:38 ] でもこれだとTrue -> true, False - > false, None-> 'none' ができてねえぞ
364 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:22:43 ] 俺のやることにいちいち口を出さないでほしい。 ここは初心者スレなのだから間違えたとしても許される。
365 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:23:44 ] json.dumpsが標準になったんだから使えよ
366 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:32:55 ] なぜ昔からあるstrを使わない?
367 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:40:16 ] | | ∩___∩ | | ノ _, ,_ ヽ (( | プラプラ / ● ● | (=) | ( _●_) ミ _ (⌒) J )) 彡、 |∪| ノ ⊂⌒ヽ / ヽノ ヽ /⌒つ \ ヽ / ヽ / \_,,ノ |、_ノ
368 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:29:59 ] for i in range(1,101):print"Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i こういうふうに"*"をprintの中で使う場合について解説しているサイトを教えてください。 入門書を一冊読んだのですが、上記のような使い方については書かれていませんでした。たぶん。
369 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:32:41 ] "Fizz"*1 表示 "Fizz"*0 非表示 になってるだけ。 "hoge"*2 -> hogehoge たぶん。
370 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:37:18 ] >>368 > "*"をprintの中で使う場合について こういう条件付けはあまり意味がないな print文の構文は print 式,式... または print >>式 式,式... だ(正確な定義はリファレンスマニュアル参照) つまりprint文では任意の式が使えるから使っているだけのことで、 この場合は式 "Fizz"*(i%3<1)+"Buzz"*(i%5<1)or iを評価した値が印字される
371 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:39:10 ] *での繰り返しについてってことならチュートリアルにもあるね www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000
372 名前:368 mailto:sage [2009/02/09(月) 01:05:10 ] >>369-371 ご教示ありがとうございます。 *が特別な意味を持っていて、たとえば "Fizz" if i%3<1 else "" のelse以降を省略したような意味で使われているのかと思ったのですが、 ただ掛けていただけだったんですね。
373 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:33:21 ] そう思ってても問題ないよ今回の場合は
374 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:52:44 ] amazonのHTMLを解析するプログラムを組んでいるんですが、 正規表現がうまくいきません。 re_word = re.compile(r'href.*?/dp/.*?>') リンクに/dp/が含む行だけを抜き出しいのですが、 うまく抜き出せません。 正規表現はチェッカーを使ったところ正しいようです。 for m in re_word.finditer(htmlcontent): print m.group(0) 何か使い方が悪いでしょうか python2.5
375 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:51:41 ] 何がやりたいのか、どんなエラーが出たかなどちゃんと書かないと分からないよ コード例も断片じゃなくてちゃんと動くものを書こうね こういう処理はちゃんとしたHTMLパーサを使うのが定石(ElementTree, lxmlなどで調べて) ちゃんと動いてるみたいだけどどこがおかしいの #!/usr/bin/python import re, urllib htmlcontent = urllib.urlopen("www.amazon.com ").read() re_word = re.compile(r'href.*?/dp/.*?>') for m in re_word.finditer(htmlcontent): print m.group(0) $ python test.py href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW "> href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE "> href="www.amazon.com/Makita-BDF452HW-18-Volt-Compact-Lithium-Ion/dp/B000K6ILDW "> href="www.amazon.com/Milwaukee-2601-22-18-Volt-Li-ion-Compact/dp/B000WER5SE ">
376 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:54:55 ] ElementTreeをHTMLパーサとか言うのは勘弁してください
377 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:17 ] re.compile(r'href[^<>]*?/dp/[^<>]*?>')
378 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:08:43 ] HTML -> HTMLParser(html.parser@3.0) XML -> xml.parsers.expat, xml.dom, xml.sax, xml.etree.ElementTree, lxml(推奨) lxmlはwell-formedでないXMLもうまく扱える。 これで合ってますかね。
379 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:10:38 ] dictionaryのkeyに可変なインスタンスを登録することができないのですが、 同様な機能はどっかの標準パッケージにあるでしょうか。 例えば class Nuclei(object): def __init__(self, A, Z): self.A = A self.Z = Z というような、質量数と原子番号を保持するものがあるとします。 原子の周期表をdictionaryで作るとして、 d = {} d[Nuclei(2, 1)] = 0.0015 # 例えば重水素の存在比を登録 のようにしたとき、再び >>> d[Nuclei(2, 1)] 0.0015 と取り出せるようにしたいのですが。
380 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:45:25 ] from collections import namedtuple # 2.6 feature Nuclei = namedtuple("Nuclei", "A Z")
381 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:21:03 ] >>380 ありがとうございます。 2.5までしか使えない環境なので、 __hash__を定義して解決しました。
382 名前:デフォルトの名無しさん [2009/02/10(火) 08:04:53 ] そんな機能があったとは。 おまえら物知りだなぁ。
383 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:56:35 ] モジュールが豊富にあるので 個々人で全てを把握しきれるとは思えないからな。 一応namedtupleについては追加するとか 一部(ML)で話題にあがったりしたが。
384 名前:374 mailto:sage [2009/02/10(火) 11:08:40 ] >>375 >>376 >>377 >>378 テキストのエンコードとか変更して色々やってたら抜き出せました。 色々とご教授頂き、ありがとうございました
385 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:21:29 ] BeautifulSoupを使っているんですが、 <div class="hoge">this soup is beautiful</div> (1) とあった場合 this soup is beautiful を抜き出すにはどうすればいいのでしょうか? (1)まで抜きだしはできていてclassつきの場合のやり方がわかりません。 (1)を格納している変数はsoupsとすると soups["div"]に近い形で抽出できると思うんですが、 よろしければ教えていただけませんか?
386 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:36:40 ] >>385 Tagの子要素はcontentsで取れるんで、単に soups.contents[0] でいいんじゃないか クラスはNavigableStringになる
387 名前:385 mailto:sage [2009/02/10(火) 15:30:50 ] >>386 意図どおり、取れました。 ありがとうございます!。
388 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:11:59 ] pythonをUSBメモリに入れてMsysで使いたいです
389 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:33:47 ] pymixiって今配布されているバージョン動きますか? BeautifulSoupのエラーなのか, Pymixiのエラーなのか, Mixiのタグが変わったのか切り分け中です。
390 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:06:54 ] pycompleteを探していて、python-modeと一緒に入ってると聞いたのですが、 最新版らしき ttps://launchpad.net/python-mode には入ってませんでした どっかにありませんか?
391 名前:390 mailto:sage [2009/02/12(木) 17:11:39 ] 自己解決しました
392 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:32:36 ] pythonからwindowsのコマンドを実行することはできますか? またできるのなら方法を教えてください
393 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:54:16 ] >>392 import os
394 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:04:32 ] どうしてpythonにはpopenがいっぱいあるのはなぜですか?
395 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:16:45 ] >>394 そのとおりです
396 名前:デフォルトの名無しさん [2009/02/12(木) 20:22:10 ] 3=9-6
397 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:48 ] 愚民が権力握っても 不正や腐敗がはびこるだけよ♪
398 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:52:56 ] >>394 そのうち消えるから安心しろ
399 名前: ◆UNKOVIP9RM [2009/02/12(木) 22:57:52 ] >>394-395 ちょっとわからんかった。。。
400 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 16:53:11 ] 人生は後払い
401 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:42:21 ] python3000ってpymacs使える?
402 名前:デフォルトの名無しさん [2009/02/14(土) 16:34:44 ] 無理 あきらめろ
403 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:40:42 ] 辞書のコピーってのは、やっぱりimport copy使うか、バラして自力でやるしかないでしょうかね? d = {なんとか}で、 c = { d.items() }みたいな感じで簡単に書くのは無理でしょうか?
404 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:50:46 ] dict(d)
405 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:21:37 ] >>404 ありがとうございます! もっと簡単な方法があったんですね。
406 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:43:20 ] d.copy() でもいい
407 名前: ◆UNKOVIP9RM [2009/02/15(日) 20:57:05 ] ttp://itpro.nikkeibp.co.jp/article/Research/20090214/324743/ 日本は新興国だろ
408 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:50:58 ] galprop.stanford.edu/web_galprop/galprop_home.html に置いてある、 galprop.stanford.edu/codes/v50.1p.tgz の中のpp_meson.fをf2pyにかけたいのですが、 $ f2py -c -m pp_meson pp_meson.f をやると大量のエラーが出ます。 running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands --compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options running build_src building extension "untitled" sources f2py options: [] f2py:> /var/folders/wH/wHx7+EnOGj8QSwsYqxTqmE+++TI/-Tmp-/tmpYvDAdM/src.macosx-10.5-i386-2.5/untitledmodule.c (略) File "/Library/Python/2.5/site-packages/numpy-1.2.1-py2.5-macosx-10.5-i386.egg/numpy/f2py/crackfortran.py", line 2072, in analyzevars for k in implicitrules[ln0].keys(): KeyError: '1' どのような修正を加えて走らせ直せば良いのでしょうか。 OS X 10.5.6 + gfortran Linux g77 3.3.5 のどちらでも同じ症状です。Python 2.5 + numpy 1.2.1を使っています。
409 名前:408 mailto:sage [2009/02/16(月) 18:23:29 ] どうやらf2pyは継続行をうまく扱えないようで、 1行目 !comment & 2行目 みたいに書いてあるところのコメントを取り除けばいいようです。
410 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:15:59 ] site-packages/my_package site-packages/my_package/__init__.py site-packages/my_package/module1.py site-packages/my_package/module2.so のような構成でパッケージを作りました。 __init__.pyには、 from module1 import * from module2 import * とだけ書いてあります。しかし、 $ python >>> import my_package Traceback (most recent call last): File "<stdin>", line 1, in <module> File "my_package/__init__.py", line 8, in <module> from module2 import * ImportError: No module named module2 となってしまいます。どこを直せば、module2.soを読みに行ってくれるのでしょうか。 python 2.5.1をOS X 10.5.6で使用しています。
411 名前:410 mailto:sage [2009/02/16(月) 20:16:54 ] 追記 $ cd site-packages/my_package $ python >>> import module2 とやると、ちゃんと動きます。
412 名前:410 mailto:sage [2009/02/16(月) 20:46:46 ] あ、嘘。できた。
413 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:44:34 ] 例1) >>>wordlist = ["H","K","L"] >>>[word.lower() for word in wordlist] ['h', 'k', 'l'] 例2) >>> x = [1,2,3,4,] >>>[x for x in x if x % 2 == 0] [2, 4] 例1を >>>[for word in wordlist word.lower()] 例2を >>>[if x % 2 == 0 x for x in x] とやると、動きませんでした。 forの部分を前に書く場合と後ろに書く場合があるような気がするのですが、 どういった決まりがあるのでしょうか。
414 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:58:36 ] >>413 構文はリファレンスマニュアルに書いてある ttp://docs.python.org/reference/expressions.html#list-displays かな まあ簡単に言うとyieldしたい式は必ず先頭(forの前)に 書かなければならないような構文になっている
415 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 06:03:47 ] Python ではマルチスレッド化しても複数コアを使うことはなくて(なんかGILとか言うらしい)、 複数使うにはマルチプロセスにすれば可能 という理解であってます?
416 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 10:49:47 ] まちがってるよ。Ruby使えば問題かいけつ。
417 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:24:05 ] いい加減にしろRuby厨! 巣から出てくるな! あんなパクリだらけで出来の悪い言語なんか信者以外使わないわ
418 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:53:08 ] まぁまぁ
419 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:00:59 ] こうしてみるとRubyって存在そのものが悪だな まぁ作った奴からしてアレだしw ひたすら他の言語をDisりまくりだもんな、そりゃ嫌われるわ
420 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:19:32 ] だが、そこがいい
421 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:30:58 ] >>415 おk ja.wikipedia.org/wiki/CPython#.E4.B8.A6.E5.88.97.E6.80.A7.E3.81.AB.E9.96.A2.E3.81.99.E3.82.8B.E5.95.8F.E9.A1.8C
422 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:44:24 ] >>421 ありがとう
423 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:09:31 ] 自分で作成したモジュールの同梱データファイルを使いたいときに、 mydata = pkg_resources.resource_filename("my_module", "data/data.txt") としてパスを取得しています。 しかしこの方法だとpkg_resourcesを入れる必要があるため、 他の人のマシンにmy_moduleを入れた場合にすぐに動きません。 この他に、データファイルのパスを簡単に取得する方法があるのでしょうか。
424 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:18:09 ] データファイルをモジュール化する。
425 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:53:18 ] os.path.join(os.path.dirname(__import__("my_module").__file__), "data/data.txt")
426 名前:デフォルトの名無しさん [2009/02/19(木) 23:21:08 ] ありがとうございました
427 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:34:21 ] すごいくだらないんですけど PyPy Pychinko以外になんか卑猥なのあります?
428 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:06:40 ] え?どこが卑隈なの?
429 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 15:56:05 ] o2.py
430 名前:デフォルトの名無しさん [2009/02/21(土) 19:26:29 ] AutoComplete.elをwindowsのMeadowで使ってる人いません? rope のインストールの仕方教えて臭い
431 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 19:37:13 ] つttp://www.youtube.com/watch?v=y8SZnU5iG-4
432 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:02:27 ] >>430 pythonユーザはMeadow率が低いみたい. 俺も以前,このスレでpdbがらみの質問したけど まともなレスが無かったよ. 素直にeclipseを使うことをお勧めする. emacsキーバインドもあるから,移行はそんなにつらくない・・・かもしれない. とか言ってる俺自体,Meadowとの相性の悪さにウンザリして Python触らなくなっちゃったけどね. 下手に高機能な分,動かないときは絶望的ってイメージ.
433 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:11:08 ] つか,このスレでたまに出てくるRuby厨は Python厨の騙りじゃねw まぁ,どっちでもいいけどさ. 国内でのライブラリやツール類の開発者(成果物?)は Ruby >>> Python ですよね. 当然,世界レベルで見たら Perlに変わってLinuxのシステムツールの地位を獲得している Pythonの方が圧倒的だけど,やっぱり,国内じゃ弱い. まぁ,何が言いたいかってぇと,ブログなんかに書き散らかすんじゃなくて 有用な情報が一元的に収集されてるといいなぁ・・・ってことです.
434 名前:430 mailto:sage [2009/02/22(日) 05:19:23 ] 自己解決しました setup.pyを実行じゃだめで、easy_install入れたらできました。 >>432 まぁ私は困ってないのでこのままMeadowを使おうとおもいます 参考までになにが不満だったかお聞かせください
435 名前:デフォルトの名無しさん [2009/02/22(日) 05:58:36 ] >>434 gdbインターフェースでpdbを使いたかったんですが 俺には無理でした。
436 名前:デフォルトの名無しさん [2009/02/22(日) 09:12:29 ] >>432 ,434 Windows用のGNU Emacsを使うという手は?
437 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:24:38 ] >>436 確かに、Win32 emacsでやりたいことはできるんですが Meadowとの細かい差分が気になって… せめてマウスカーソル消去に対応して欲しかった。
438 名前:デフォルトの名無しさん [2009/02/22(日) 14:05:35 ] boost.pythonスキだぁ
439 名前:デフォルトの名無しさん [2009/02/23(月) 15:46:55 ] 質問です。 osはwindowsxp、Pythonは2.6.1を使っています。 PyAudioというモジュールをインストールして waveファイルをいじろうとしているのですが、 waveファイルを再生しようとしてPyAudio配布元の Exampleソースのように書いて動かしてみると 普通に動きました(waveファイルが再生された) ●PyAudio配布元people.csail.mit.edu/hubert/pyaudio/ ●wave再生のexampleソースpeople.csail.mit.edu/hubert/pyaudio/#examples 今度は再生のときの音量をいじってみようと モジュールの説明をつらつらと見てみたのですが どのようにいじれば音量をコントロールできるかわからないです。 どなたかわかる方いらっしゃいませんか?。。。。。 ●PyAudioモジュールドキュメント people.csail.mit.edu/hubert/pyaudio/docs/pyaudio-module.html
440 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:37:35 ] >>439 以前やろうとしtけど、なかった気がする 他の方法でOSの音量をいじるか、 code.google.com/p/pygalaxy/wiki/SWMixer こんなのがみつかったけど、どうだろうか?
441 名前:デフォルトの名無しさん [2009/02/24(火) 19:47:36 ] なんかMeadowの話があったみたいですが、NTEmacsでの質問をさせてください。 VistaにNTEmacs、Python2.5.4、PyQt-Py2.5-gpl-4.4.3、matplotlib-0.98.5.2、python-modeを入れてNTEmacsからpy-shellを使えるようにしました。 ところがmatplotlibで図を表示してみようと思っても、imshowで止まってしまって何も表示されません。 同じ事をIDLEからやるとちゃんと表示されます。 理由と対処法分かりませんか? 実行しようとしているのはネットで拾ったサンプルの一部で from pylab import * A = rand(5, 5) figure(1) imshow(A, interpolation='nearest') grid(True) show() です。NTEmacsの*Python*バッファからだとimshow()で止まってしまいます。
442 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:19:00 ] >>> a = {1 : []} >>> b = dict(a) >>> b[1].append(2) >>> b {1: [2]} >>> a {1: [2]} 中のリストが参照渡しになってしまうようなのですが、これを回避する方法はありますか? ちなみに a.copy() copy.copy(a) もだめでした。 よろしくお願いします
443 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:26:17 ] copy.deepcopy(a)
444 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 07:38:42 ] Pytohnシェルでタブ補完出来るようにしたら便利すぎ!! "python 補完"でぐぐって、 Linuxの場合: ttp://d.hatena.ne.jp/maedana/20070813/1186992559 Windowsの場合: ttp://72.14.235.132/search?q=cache:oiU4zQsZDZkJ:www.gikogeek.net/wd/2008/09/25/41/+python+%E8%A3%9C%E5%AE%8C&hl=ja&ct=clnk&cd=3&gl=jp&client=firefox-a 上記の方法以外に、より高機能なPytohnシェル(IPython)を使うという手も良さそう。 ttp://python.matrix.jp/modules/ipython.html
445 名前:442 mailto:sage [2009/02/25(水) 13:08:05 ] >>443 ありがとうございます!
446 名前:デフォルトの名無しさん [2009/02/25(水) 15:19:34 ] >>444 ありがとうございます!
447 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 22:10:52 ] >>444 パイトーンワロタ
448 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:17:14 ] pythonで[0x78, 0x56, 0x34, 0x12]みたいな配列を0x12345678のような数値にしたいのですが何か良い方法ありますか?
449 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 07:40:20 ] たたき台として >>> from struct import * >>> buf = pack('4B', *[0x78, 0x56, 0x34, 0x12]) >>> buf 'xV4\x12' >>> unpack('<I', buf)[0] 305419896 >>> hex(_) '0x12345678'
450 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:51:37 ] a = [0x78, 0x56, 0x34, 0x12] "0x%02x%02x%02x%02x" % (a[3],a[2],a[1],a[0])
451 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:21:48 ] >>> a = [0x78, 0x56, 0x34, 0x12] >>> reduce(lambda x, y: (x << 8) + y, reversed(a), 0) 305419896 >>> sum(i * 2**j for i, j in zip(a, (0, 8, 16, 24))) 305419896
452 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:02:32 ] reduce(lambda x, y: x + '%02x'%y, reversed(a), '0x')
453 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:07:36 ] 「数値にしたい」と言ってるのに文字列化してるのは何故なんだぜ
454 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:39:55 ] 0x12345678のような数値にはならないから。
455 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:47:10 ] 0x12345678は数値?
456 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:48:26 ] '0x12345678'になってりゃ int('0x12345678',16)で医院で内科脳
457 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:51:33 ] >>> int('0x%s'%''.join(map(lambda x: '%02x'%x,reversed(a))),16) 305419896
458 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:53:02 ] とりあえず reversed() は禁止した方が良いと思う
459 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:55:55 ] 言い出しっぺが「数値にしたい」と言ってるのに文字列化してる
460 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 15:59:25 ] 問題文の日本語が正しいとは限らない。
461 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:04:37 ] 初心者スレだからな 素直に >>449 でいいと思う
462 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:06:42 ] bytes([0x78, 0x56, 0x34, 0x12]).long()
463 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:47:36 ] class A(object): def f(self): """ document """ class B(A): def f(self): pass という2つのclassを作ったとします。このとき、 help(A)やhelp(B)でAとBの説明を見ると、 当然かもしれませんがB.fの説明は空欄になってしまいます。 Bのような継承が何個もあり、その関数fの説明は全て同じにしたいのですが、 全部の継承classに対して同じ説明書きをしないといけないのでしょうか。 説明が変わるたびに全てのclassを修正する必要があるので面倒です。 何か良い方法があるでしょうか。教えて下さい。
464 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:26:41 ] >>463 class B(A): def __init__(self):
465 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:30:42 ] misutta まぁコードはいいや。 Bでfを再定義しなければAのfが実行されるで。
466 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:53:51 ] fを再定義するってことは、少なくとも内容に変更があるってことだからな。
467 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:17:12 ] >>462 なにその便利関数、って思ったら3.Xか
468 名前:463 mailto:sage [2009/02/27(金) 00:49:43 ] ありがちな例で申し訳ないですが、 class Animal(object): def naku(self): """ 動物が鳴くお """ raise NotImplementedError class Cat(Animal): def naku(self): printf "にゃー" class Dog(Animal): def naku(self): printf "わんわん" ってときに、いちいち"猫が鳴く"とか"犬が鳴く"っての書きたくなくない?と。
469 名前:463 mailto:sage [2009/02/27(金) 00:50:14 ] >>468 癖でprintfとしてしまった。printです。
470 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:10:47 ] >>463 class B(A): def __init__(self):
471 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:36:18 ] Python 3.0 だとこんな感じでいけるっぽい。エラーチェック等は省略。 def docstring(cls): for name in dir(cls): if not name.startswith("_"): f = getattr(cls, name) super_f = getattr(cls.__base__, name) f.__doc__ = super_f.__doc__ return cls class A: def f(self): "docstring" pass @docstring class B(A): def f(self): pass print(A.f.__doc__) print(B.f.__doc__)
472 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:20:48 ] >>471 スレチかもしれないけど、471のPythonコードのスペースがつぶれていないのは、どうやってるんでしょうか? 自分がコードを貼り付けると、 def docstring(cls): for name in dir(cls): def f(self): こんな風になる。
473 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:32:26 ] >>472 ギコナビの特殊文字変換を使ってます。 書き込み時にスペースを に置換してくれます。 書き込み後にどう見えるかをプレビューでチェックできたりして便利です。 変換自体は手作業でやっても大した手間じゃないですよ。 エディタでスペース4個を に置換とかすればOKです。
474 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:35:41 ] 全角スペースでもいい。そのままコピペには使えないけど。
475 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:21:38 ] >>472 もスペースなくなってる訳じゃないからね ブラウザが消してるだけで httpで送られてくるデータには含まれてるから ソース見れば復元可能
476 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 08:22:36 ] 全角スペースが一番迷惑
477 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 09:22:12 ] ラベルごとに集合を作って、その集合に関数を適用する良い方法があったら教えてください。 たとえば、下の表のように、a,b,c3チーム(ラベル)それぞれの平均スコアを出したい。 team score a 10 b 2 a 9 c 8 b 3 c 6 計算結果 a b c 9.5 2.5 7.0 ラベルにもう一次元足して、クロス表を作れるともっとうれしいです。 想定している機能は、エクセルのピボットテーブルのような感じです。 Rでいうと、tapply(score, team, mean)みたいな感じです。 よろしくおねがいします。
478 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 11:02:19 ] >>477 標準ではお手軽な方法はないような気がする なんかライブラリはあるのかもしらんけど 標準でやるならこんな感じです from itertools import groupby from operator import itemgetter data = """ a 10 b 2 a 9 c 8 b 3 c 6 """ records = [(x, int(y)) for (x, y) in (line.split() for line in data.strip().splitlines())] # -> [('a', 10), ('b', 2), ('a', 9), ('c', 8), ('b', 3), ('c', 6)] grouped = [(k, map(itemgetter(1), g)) for k, g in groupby(sorted(records, key=itemgetter(0)), key=itemgetter(0))] # -> [('a', [10, 9]), ('b', [2, 3]), ('c', [8, 6])] result = [(x, float(sum(ys))/len(ys)) for x, ys in grouped] # -> [('a', 9.5), ('b', 2.5), ('c', 7.0)]
479 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:58:04 ] import collections def main(): h = collections.defaultdict(list) for line in open("a.txt"): team, score = line.split() h[team].append(int(score)) for team, scores in sorted(h.iteritems()): print team, float(sum(scores)) / len(scores) if __name__ == '__main__': main()
480 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 18:26:51 ] >>478 , 479 ありがとうございます。 itertools, operator, collections.... よくわからない奴らがたくさん出てきたぜ・・・・(汗) 試してみます。 ぱっと見、478の方が汎用性がありそうかな・・・。
481 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:23:08 ] data = """ a 10 b 2 a 9 c 8 b 3 c 6 """ h={} [h.setdefault(x,[]).append(int(y)) for (x,y) in (line.split() for line in data.strip().splitlines())] r={} [r.setdefault(x,float(sum(y))/len(y)) for (x,y) in h.iteritems()] r
482 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:44:58 ] [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2] ↓ [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] のように隣の数同士を足して新しいリストを作る操作を 一行でさくっと書きたいのですがどんな書き方をすればよいでしょうか?
483 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:07:06 ] リストの内包表記 これでググレばおk
484 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:14:02 ] [e + L[i + 1] for i, e in enumerate(L) if i < len(L) - 1]
485 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:17:57 ] [e + L[i] for i, e in enumerate(L[1:])
486 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:33:01 ] [a[i] + a[i+1] for i in xrange(len(a)-1)]
487 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:36:12 ] >>486 それが一番まっとうだよな
488 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:31:05 ] 一旦 a とか e に入れないといけないのですね [e + [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][i] for i, e in enumerate([1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2][1:])]
489 名前:デフォルトの名無しさん [2009/02/28(土) 09:50:52 ] Mercurial って Python で書かれていたのか・・・・ 俺みたいな Subversion儲かつ Python儲 はどうすればいいの?死ぬの?
490 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 09:54:48 ] >>489 1.バージョン管理は枯れてないとだめだよとか言っとけばおk 2.ファイル名に日本語混じったのを扱うようにして、subversionじゃないとだめなんだと言い出す 3.死ね
491 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:18:03 ] fooってなんですか?
492 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:20:17 ] hogeってなんですか?
493 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 10:52:12 ] >>482 >>> [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] >>> map(lambda(x,y):x+y,zip(_,_[1:])) [12, 15, 14, 14, 10, 8, 10, 7, 5, 9, 13, 12] >>> map(lambda(x,y):x+y,zip(_,_[1:])) [27, 29, 28, 24, 18, 18, 17, 12, 14, 22, 25] ・・・・・・・・・・・・・・ [9856, 8802] >>> map(lambda(x,y):x+y,zip(_,_[1:])) [18658]
494 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:01:33 ] >>> a = [1, 3, 5, 2, 5, 2, 1, 4, 1, 1, 2, 4, 3, 2] >>> [i+j for i, j in zip(a, a[1:])] [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5] >>> from operator import add >>> map(add, a[:-1], a[1:]) [4, 8, 7, 7, 7, 3, 5, 5, 2, 3, 6, 7, 5]
495 名前:スルー力が足りない! mailto:sage [2009/02/28(土) 14:29:33 ] 本人を装った荒らし乙
496 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:14:27 ] bzrもPythonだけどな。
497 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:41:03 ] Python 2.5 で sqlite3 を使ってるのですが date 型ってないのですか? integer に time.time() を代入したりして 使えってことなんでしょうか?
498 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:46:47 ] よくしらんけどSQLiteってデータ全部テキスト型なんじゃなかったっけ
499 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:34 ] >>497 ライブラリリファレンスの「13.13.4 SQLite と Python の型」
500 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:30:09 ] 図星だったwww
501 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:45:36 ] >>499 ありがとうございます sqlite3 モジュールには二つの Python 標準型 datetime.date と datetime.datetime に対するデフォルト適合関数があります。 いま datetime.datetime オブジェクトを ISO 表現でなく Unix タイムスタンプとして格納したいとしましょう。 import sqlite3 import datetime, time def adapt_datetime(ts): return time.mktime(ts.timetuple()) sqlite3.register_adapter(datetime.datetime, adapt_datetime) con = sqlite3.connect(":memory:") cur = con.cursor() now = datetime.datetime.now() cur.execute("select ?", (now,)) print cur.fetchone()[0] これは sqlite3 の real になっているということですね
502 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:48:50 ] sqlite3.register_adapter(datetime.datetime, lambda s: int(time.mktime(s.timetuple()) * 1000)) これでいいのかな
503 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:30:11 ] PythonでCGIを作りたいんですけど 質問とかはこのスレでいいんですか?
504 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:33:58 ] pc11.2ch.net/test/read.cgi/php/1163513344/ こういうスレがある
505 名前:デフォルトの名無しさん [2009/03/01(日) 00:31:15 ] >>504 ここじゃダメなのか thx! 逝ってくる
506 名前:デフォルトの名無しさん [2009/03/01(日) 10:49:52 ] # -*- coding: utf-8 -*- print u'ABな'.isalnum() というのなんですが、Emacsのpy-execute-***で実行するとはUnicodeDecodeErrorがでて、 シェルで実行するとTrueになってしまいます。 なにがまずいんでしょうか?
507 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:32:27 ] coding.derkeiler.com/Archive/Python/comp.lang.python/2008-04/msg02501.html codepad.org/MVV0u4pQ py-execute-*** 使ったことないからよくわからんけど ユニコードに対応してないような…少なくともIDLEは対応してない…
508 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:14:55 ] >>507 ありがとうございます ですが、そのページは見たところユニコード文字列の表示の件な気がします IDLEの場合は対応してないというより、 ユニコードをデフォルトの文字コードでエンコードしようとするから文字化けするという話のはずです >>506 は別にユニコード文字列の表示はしないですし、たぶん関係ないでしょう 一応print len(u'そうだね')なんかだとはちゃんと動くようでしたし
509 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:22:33 ] UnicodeDecodeErrorはバイト列(str)から文字列(unicode)への変換時のエラーだから、 coding: utf-8 としてるけど実は utf-8 になってない、とか 実際に utf-8 だけど別の文字コードでデコード(str→unicode変換)しようとしている、とか その手の問題だと思われ。 表示のときに起こるのはエンコード(unicode→str変換)のエラー。
510 名前:デフォルトの名無しさん [2009/03/01(日) 21:26:31 ] 蕃爽麗茶
511 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:04:21 ] さげ
512 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:35:58 ] PyScripter で、日本語が文字化けするのですが対処法はありますか? UTF−8に設定しているのでu"ほげ"は正常にほげと出力されますが、 ”ほげ”は文字化けしてしまいます。 開発環境は pyscripterの1.9.9.3 Python2.6 です。よろしくおねがいします
513 名前:デフォルトの名無しさん [2009/03/01(日) 23:37:03 ] 'ほげ'.decode('utf-8')
514 名前:デフォルトの名無しさん [2009/03/02(月) 22:49:21 ] pythonのRADツールってなにがありますか? あと、「みんなのpython」を読んである程度、オンラインリファレンスを呼みながら、pythonプロ倉ミンgうができるようになったのですが 頭の中で言語仕様どうもまとまっていません、ある程度pythonのわかるものが言語仕様をコンパクトに確かめられる本はありませんか?
515 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:53:10 ] オンラインリファレンスじゃだめなんか
516 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:11:02 ] オンラインリファレンスの日本語はどうしても、肌に合わなくて。 あとできればアナログ媒体で読みたいのです。
517 名前:デフォルトの名無しさん [2009/03/02(月) 23:24:35 ] 英語のオンラインリファレンスじゃだめなんか
518 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:15:47 ] すいません英語はみょめないんです
519 名前:517 mailto:sage [2009/03/03(火) 00:30:32 ] >>518 は僕じゃないですけど。 同じく英語が読めないんです。クイックリファレンス目的だったら、通読するようなものでもないので英語でがんばって読むというのもありなんですが。 どうしても、通読することを考えた場合、日本語の方が良いですね。 「Pythonチュートリアル」略してパイチューはその目的としてはどうなんでしょうか?
520 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:48:00 ] 英語のオンラインリファレンスを印刷したものじゃ(ry
521 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:52:28 ] 日本語の場合‥はオライリーの邦訳が一番マトモな本なので買っておいて、 不足している場合はpython.orgの2.6 or 3.0のドキュメントを見る様にしてる。 あとはGoogleGroupのlang.pythonグループの記事を読む様にする、 日本国内のMLを購読する様にするとか‥色々あるよ
522 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:14:19 ] あそこのWikiに書き込んでいけばみんなHappy
523 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 10:00:16 ] あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy あそこのWikiに書き込んでいけばみんなHappy
524 名前:デフォルトの名無しさん [2009/03/04(水) 16:03:53 ] したらばの掲示板にurllib2をつかってつなごうとしています。 最初に試したときは、まともな結果が返ってきたのですが 二回目以降は以下のようなエラーが返ってきます。 どうにかして二回目以降もつなげるようにしたいのですが、どうすればいいでしょうか? Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import urllib2 >>> url = "jbbs.livedoor.jp/sports/35590/ " >>> r = urllib2.urlopen(url) >>> r.code,r.msg (200, 'OK') >>> print r.info() Date: Wed, 04 Mar 2009 06:53:41 GMT Server: Apache/1.3.41 (Unix) mod_perl/1.30 Content-Type: text/html Connection: close Transfer-Encoding: chunked >>> print r.read() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python25\lib\socket.py", line 291, in read data = self._sock.recv(recv_size) File "C:\Python25\lib\httplib.py", line 509, in read return self._read_chunked(amt) File "C:\Python25\lib\httplib.py", line 544, in _read_chunked line = self.fp.readline() File "C:\Python25\lib\socket.py", line 331, in readline data = recv(1) socket.error: (10054, 'Connection reset by peer')
525 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:47:35 ] >>524 >>> import urllib2 >>> urllib2.open('jbbs.livedoor.jp/sports/35590/ ').read() (省略) >>> urllib2.open('jbbs.livedoor.jp/sports/35590/ ').read() (省略) 何回かやってみたが普通に受信できてるみたいだけど 単にopen()とread()の間がある程度開くと、タイムアウト扱いで 切られるんような設定になってんじゃないの鯖側が
526 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 19:58:59 ] >>525 本当にありがとうございましm(_ _)m なんとかなりました。
527 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:26:07 ] やっぱりだめでした、連続投稿しようとしたら制限かけられてしまいました。
528 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:31:05 ] 連続投稿って掲示板側で制限かけられてるんじゃないのか
529 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 11:36:28 ] PyScripterで開発していますが、 コードの横に行数を表示させる設定はどこでできますか?
530 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 13:46:34 ] ツール->オプション->エディタオプション->「表示」タブの「行番号の表示」
531 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 14:11:49 ] >>530 できましたありがとー☆
532 名前:デフォルトの名無しさん [2009/03/05(木) 15:43:51 ] >>522 喧嘩売ってんのかテメエ!
533 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:47:14 ] def foo(): print 何かの方法 で、自身の関数名(この場合はfoo)を取得する方法ってありますか?
534 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:08:17 ] >>> import sys >>> def foo(): ... print sys._getframe().f_code.co_name ... >>> foo() foo
535 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:33:05 ] >>534 すごい、こんなにさっくり返答いただけるとは。。。 sys._getframe().f_code.co_name ・・・恐らくここで聞かなければ一生知る機会もなかったと思います。 ありがとうございました。 ググってもリファレンスを見ても不明で、どう調べるかの段階から悩んでいたところです。 (少なくとも↓のリファレンスや逆引きPythonからはどう見ても解を得られませんでした) www.python.jp/doc/2.4/lib/module-sys.html cuttingbear.qee.jp/python/ このようなかゆい所に手の届く情報源が、ありましたらご教授頂けますと幸いです。
536 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:23:56 ] クックブックとか ttp://code.activestate.com/recipes/langs/python/
537 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:43:20 ] >>535 ググり方を工夫するといいかも。 www.google.co.jp/search?q=python+getting+function+name+within+function
538 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:04:34 ] >>536 >>537 拝見しました、なるほど、Python情報はまだまだ英語サイトの参照が 欠かせないんですね。 今後の日本での普及に期待&何らかの形で貢献できればと思います。 ありがとうございました。
539 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:29:37 ] 自分自身の型はどうすれば分かりますか?
540 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:34:10 ] type
541 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:34:29 ] ありがとうございます っていうか やりたかったことはちょっと違ってたんです yaml で型情報を含めて出力出来ないかと思ったのですが pickle で出来ることが分かりました
542 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:09:31 ] zipfileでzipを作れると思いますが パスワード付きにすることは出来ますか?
543 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 06:40:28 ] MeCabのPythonバインディングのインストール方法を教えてください。 >setup.py install running install running build running build_py running build_ext building '_MeCab' extension c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:unrecognized /LIBPATH:option /LIBPATH:`--libs-only-L` /LIBPAT H:C:\Python26\libs /LIBPATH:C:\Python26\PCbuild unrecognized.lib option.lib `--libs-only-l`.lib /EXPORT:init_MeCab build\temp.win32-2.6\Release\MeCab_wrap.obj / OUT:build\lib.win32-2.6\_MeCab.pyd /IMPLIB:build\temp.win32-2.6\Release\_MeCab.lib /MANIFESTFILE:build\temp.win32-2.6\Release\_MeCab.pyd.manifest LINK : fatal error LNK1181: 入力ファイル 'unrecognized.lib' を開けません。 error: command '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"' failed with exit status 1181 と出ます。
544 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:02:23 ] Rubyを使いなさい。
545 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 21:30:40 ] ruby厨は他の言語もいっぱい使ってみなさい
546 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 22:16:54 ] SQLiteの文文字コードでつまずいています。 変数を経由すると満足に書き込めなくて困っています。 どなたかたすけてくだちぃ。 # -*- coding: utf-8 -*- import sqlite3 db = sqlite3.connect('hogehoge.db') db.execute('create table tablehoge(val1, val2)') db.execute("insert into tablehoge values ('ふが1', 'おっぱ1')") v = (u'ふが2'.encode('utf-8'), u'おっぱ2'.encode('utf-8')) db.execute("insert into tablehoge values " + str(v)) db.commit() a = db.execute('select * from tablehoge') for i in a: print i db.close() とすると、 >>> (u'\u3075\u304c1', u'\u304a\u3063\u30711') (u'\\xe3\\x81\\xb5\\xe3\\x81\\x8c2', u'\\xe3\\x81\\x8a\\xe3\\x81\\xa3\\xe3\\x81\\xb12') と表示されます。 どうすれば、変数を解した(しかも一旦ユニコード化した)文字列を SqLiteに書き込めるのでしょうか。
547 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:11:47 ] db.execute("insert into tablehoge values (?,?)", v)
548 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:16:57 ] >>547 ありがとう。 その使い方が正当だったのですね!
549 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:37:14 ] 恥ぱいは文字コード変換についてまったく書いていないクソ本ですね。
550 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:47:39 ] db.execute("insert into tablehoge values (%s)" % ','.join("'%s'" % s for s in v)) すげー無駄
551 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:15:15 ] 教えてください。Google App Engine上で簡単な採番を実現したいと考えています。 Oracleのsequenceのような自動採番の仕組みを見つけられなかったので、以下のようなコードを書いて採番することにしたのですが、コードをsyncronizedにする方法がわかりません。 ぶっちゃけJavaのように syncronized{ hoge() } とか、C#のように lock(){ hoge() } とか書きたいんですけど、Pythonでこれを実現するにはどうしたらいいんでしょうか? from google.appengine.ext import db class IdGenerator(): def generate(self): cursor = db.GqlQuery("SELECT * FROM IdModel") id = None if cursor.count() < 1: id = 0.0 idModel = IdModel() else: idModel = cursor[0] id = idModel.id id = id + 1.0 idModel.id = id idModel.put() return id class IdModel(db.Model): id = db.FloatProperty()
552 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:25:03 ] db.run_in_transaction
553 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:26:55 ] はやくしてください。
554 名前:551 mailto:sage [2009/03/07(土) 00:35:19 ] >>552 ありがとうございます、まさに求めていたものでした!
555 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:47:20 ] >>551 つttp://code.google.com/intl/ja/appengine/docs/python/datastore/functions.html#run_in_transaction もう解決したみたいだけど ↓こっちも見ておいた方が良いです ttp://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine
556 名前:551 mailto:sage [2009/03/07(土) 00:54:26 ] >>555 ありがとうございます、ビデオも見せていただきます! Pythonはじめてな上に慣れないDatastoreなので 悪戦苦闘してますw
557 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:06:21 ] >>556 つttp://docs.google.com/Present?docid=dc3xqd3t_11g3pdqk3v 今は楽しい時期かもしれないけど そのうちGAEに失望することになるよw
558 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:07:51 ] >id = db.FloatProperty() >id = id + 1.0 だれかここに突っ込めよ
559 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:09:37 ] ディレクトリの名前が FooDir だとすると 内部の app.py (エントリーポイント) で import FooDir とすると __init__.py が呼び出されますか? FooDir.py とか見当たりませんでした…
560 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 06:56:14 ] ttp://sites.google.com/site/docjpgaeo/tutorials/developing-and-installing-a-plugin ttp://doc.gaeo.org/tutorials/developing-and-installing-plugins
561 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 09:48:13 ] すみません…意味がわかりません
562 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:27:32 ] 普通は教えてもらってそれほど感動したなら、今度は自分が教える側に回ろうとか思うもんだけどな 1年半経って未だに質問するだけか 猿だな 答えて貰えなきゃ感謝してるはずのスレで罵詈雑言撒き散らして荒らすあたりが本当に猿
563 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:29:43 ] www.boduch.ca/search/label/boduch packages.python.org/boduch/module-boduch.type.html apydia.ematia.de/ 名前空間があるからこそ ドキュメントの自動生成を範疇として自らの内に 捕らえられるのでしょうか? でも __init__.py いうのが いまいちよく理解できない…pythonムズイ…orz
564 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 16:24:51 ] >>265-268
565 名前:デフォルトの名無しさん [2009/03/07(土) 16:29:26 ] sys.path.append(os.path.dirname(__file__)) sys.path.append(os.path.join(os.path.dirname(__file__), 'application')) plugins_root = os.path.join(os.path.dirname(__file__), 'plugins') if os.path.exists(plugins_root): plugins = os.listdir(plugins_root) for plugin in plugins: if not re.match('^__', plugin): exec('from plugins import %s' % plugin)
566 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:16:47 ] 気象予報士って13歳でも受かるんだな
567 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 20:47:25 ] 確かにPythonの綺麗なインデント、コードスタイルには興味があるけどー Rubyと比べると正直価値は無いと思うがなぁ。 ていうかSmalltalkと同じ発想でしかも低レベルなのが物凄く悲しい 俺みたいな凡人には推し量れない意味があると信じたい
568 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:11:25 ] 俺みたいな凡人には推し量れない意味があると信じたい
569 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:33:09 ] インデント、コードスタイルで Python 選んだ訳じゃないからなぁ
570 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:44:19 ] ぶっちゃけ、俺の書くコードの見た目はだいたい全部同じになる。(関数系は除いて) ただ、モンティパイソン精神でこれ使ってる。
571 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:18:39 ] Rubyと比べると正直価値は無いと思うがなぁ。 Rubyと比べると正直価値は無いと思うがなぁ。 Rubyと比べると正直価値は無いと思うがなぁ。
572 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:36:18 ] ドキュメンテーションが半端なライブラリ等はプロジェクトに 持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ からチョイスした方が楽が出来る
573 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:18:32 ] Python で抽象クラスを定義するにはどのように書けばよいでしょうか?
574 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:01:05 ] import ImageTk as Itk とすると ImportError: No module named ImageTk となるのですが、どうすればいいですか?
575 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:16:03 ] PIL入れろ
576 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 16:25:38 ] >>575 いけた!サンクス
577 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:57:03 ] >>573 ttp://d.hatena.ne.jp/chrono-meter/20080327/p1 ttp://d.hatena.ne.jp/chrono-meter/20080327/p2
578 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:08:30 ] タプルとかのコレクションを可変個引数に上手く渡すにはどうしたらいいです? perlでふつうに&func(@array)みたいに。
579 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:09:50 ] func(*array) かな
580 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:18:56 ] func(**hash) かな
581 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:26:35 ] 普通に渡すならそれで良いんですけど、可変個引数を取る関数にタプルを上手く渡せないものかと。 (a, b, c) = get_tuple() want_varg(a, b, c) # 可変個引数な関数 この時に一時変数 a, b, c を介さずに引数を渡せないものですかね?
582 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:28:50 ] want_varg(*get_tuple())
583 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:34:18 ] >582 それです! ありがとうございます。
584 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:45:13 ] 目の前にあっても見えないことってあるんだな
585 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:39:53 ] 先生!教えてください。 WindowsでPython使う場合、ActivePythonのPythonどちらを使えばいいですか? あと、2.6.1と3.0.1のどちらが良いですか? 初心者です。 よろしくお願いします。
586 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:43:42 ] >>585 JythonかIronPythonのほうがいいよ
587 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:51:00 ] >>585 公式の2.5.4オススメ WindowsAPIやCOMを使うつもりがあるならActivePython 自ら進んで苦労したい物好きなら3.0
588 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:53:40 ] なんで2.5系薦めるんだよ・・・・・・ >>586 はふざけてるんだろうけど
589 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:57:56 ] まだ2.6に対応してないライブラリが多いから
590 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:27:12 ] すんません、教えてください。Win32 python2.6.1です。 リストの要素をCSVに落としたいんだけど。 こんなデータ(リスト)を ["a1", "b2", "c3", "d4", "e5"] ↓ こんな文字列(CSV形式)に変換 "a1,b2,c3,d4,e5" にしたいんですけど、一発でできる関数ってありますか? いや、forでまわして末尾にカンマつけてって、 そんで最後までやったら末尾のカンマを取るってのは、流石にちょっと野暮ったいと思ったので。
591 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:28:49 ] L = ["a1", "b2", "c3", "d4", "e5"] ','.join(L)
592 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:29:48 ] joinじゃだめ?
593 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:30:58 ] >>591 >>592 おー、できた。トンクス。 やっぱ聞いてみるもんだ。半日悩んだよw
594 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:05:10 ] CSVは読み書きできるモジュールがあるよ ttp://www.python.jp/doc/release/lib/csv-examples.html
595 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:54:39 ] >>594 トン。ダイレクトにCSVに書き込む奴もあるのか。 流石というか、誰もが使うようなものは標準としてあるもんなんだな。 車輪の再発明(しかも超低脳)してばっかだわ、俺。
596 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 04:52:34 ] バイトコードってどうやって、つくるの? python -O foo.pyでは、ダメなの?
597 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:37:00 ] compileall, py_compile
598 名前:デフォルトの名無しさん [2009/03/13(金) 18:41:39 ] >>> 'ほげ'.decode('cp932') u'\u307b\u3052' >>> ('%s' % 'ほげ').decode('cp932') u'\u307b\u3052' >>> (u'%s' % 'ほげ').decode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128) >>> (u'%s' % 'ほげ'.decode('cp932')) u'\u307b\u3052' >>> ('%s' % 'ほげ'.decode('cp932')) u'\u307b\u3052' >>> ('%s' % u'ほげ').decode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) >>> ('%s' % u'ほげ').encode('cp932') '\x82\xd9\x82\xb0' >>> (u'%s' % 'ほげ').encode('cp932') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128) >>> (u'%s' % u'ほげ').encode('cp932') '\x82\xd9\x82\xb0' >>> ('%s' % u'ほげ'.encode('cp932')) '\x82\xd9\x82\xb0' >>> ('%s' % u'ほげ') u'\u307b\u3052' >>> type('%s' % u'ほげ') <type 'unicode'> >>>
599 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:51:26 ] py2exeで実行ファイルをつくってみたんですが、別のWindows 2000マシンで実行したらmsvcr90.dllを要求されました。 再配布パッケージを入れればよいようですが、そもそもこのDLLを要求されないようにすることはできないんでしょうか?
600 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:59:29 ] python26.dllを/MTでビルドすれば可能かも知れないけど 拡張モジュールとFILE*でやりとりしてるとことかあるから多分無理じゃね
601 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:04:55 ] ありがとうございます。 やっぱりダメですか。配布先にDLLのインストール要求できるならそもそもPythonインストールして貰えばいいし、py2exeって何なんでしょうね。 Vistaだと最初からDLL入ってるのかな。
602 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:09:47 ] >>601 インストールしないまでもexeとセットでdll配るんじゃダメなんだっけ? 同一フォルダにあれば動きそうだけど。
603 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:20:36 ] 同一フォルダでOKな気が。
604 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:52:26 ] 漏れは setup.py の data_files に書き足してる 最近の atom の net book とかだと msvcpXX.dll なんかも持っていかないと動かないみたいだし
605 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:14:24 ] msvcpってC++ランタイムだからいらないと思うよ どっちにしろmsvcのランタイムは配布条件が面倒くさい
606 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:17:20 ] Microsoft.VC90.CRT.manifestを添付するのだけ気をつけて exeと同一ファイルに配置するのはOKだから別に面倒くさくはないよ。
607 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:33:57 ] ファイル->フォルダ
608 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:57:33 ] >>605 が言ってるのは方法じゃなくて条件(ライセンス)でしょ 詳しいこと忘れたけど
609 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 12:00:27 ] >>605 無いと動かなかった そのファイル一個だけ追加したら動いた importしてるmoduleが要求してたの鴨試練
610 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:44 ] 調べてみたけどmsvcr90.dllをコピーして再配布していいかどうかわかりませんでした。 ユーザにMSのサイトからパッケージをダウンロードしてもらうなら問題なさそうですが、手間ですよね。残念。
611 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:15:52 ] >>609 もし面倒じゃなければ依存関係調べてみれば?
612 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:19:34 ] >>910 Microsoft Visual C++ 2008 Express Editionのredist.txtには C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT を手を加えずにディレクトリ名も変更しないでそのまま再頒布しろって書いてあると思う
613 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:05:10 ] >>610 py2exeにsetupツールも入れてexe化して MSのサイトからパッケージをダウンロードするように作っておけば?
614 名前:606 mailto:sage [2009/03/15(日) 01:19:17 ] 貴様らワシの言うことが信じられんと申すか……
615 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:48:09 ] >>614 素直にRuby使った方がよろしいのではないでしょうか。
616 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:31:43 ] Windows上でRubyとかまたご冗談を
617 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 06:14:42 ] rubyのexerbで実行ファイルつくるとDLLなしで動作するよ。 しかもどうやってるのかLinux上でつくれたりする。
618 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 08:09:23 ] >>617 あれは実行ファイルじゃないから 自己解凍圧縮ファイルみたいな発想
619 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:27:21 ] >>618
620 名前:デフォルトの名無しさん [2009/03/16(月) 18:36:56 ] pythonでTkinterを使用しGUIを勉強しています。 タブブラウザのようなインターフェイスにするにはどうすればいいでしょうか? 少しググったらmaya.cmdsをimportしてtablayoutうんぬん・・・というページがあったのですが、 mayaとか持ってませんし・・・
621 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:28 ] www.not-enough.org/abe/manual/maya-python-aa07/layout2.html このページにある画像みたいなインターフェイスを作りたいです
622 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:11:57 ] >>621 tkinter.unpythonic.net/wiki/NoteBook
623 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:46:17 ] >>622 ありがとうございます。 BWidgetはTcl/Tkの拡張用のようなのですが、Tcl/Tkも導入しなければなりませんか? DLしたのはBWidget1.7.0でした
624 名前:デフォルトの名無しさん [2009/03/16(月) 21:17:35 ] www.wxpython.org/screenshots.php
625 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:27:53 ] >>623 つttp://tkinter.unpythonic.net/bwidget/
626 名前:>>620 >>621 >>623 mailto:sage [2009/03/17(火) 10:37:54 ] 解決というか>>622 さんのおっしゃられた tkinter.unpythonic.net/wiki/NoteBook のサンプルが表示されるようになりました。 原因はBWidget1.7を入れるフォルダを間違えていました。 bwidgetフォルダとsetup.py tabdemo.py test.pyはpythonのLibフォルダへ BWidget-1.7.0はpythonのtclフォルダに入れればよかったのですね。 レスくださったみなさまありがとうございました。
627 名前:>>626 mailto:sage [2009/03/17(火) 18:29:42 ] 連続で質問ばかりしてしまいすみません。 タブを選択(クリック)すると、そのGUIのページを表示するのにはどうすればいいでしょうか? 以下現在のコード(サンプルを修正したもの)です。 # -*- coding:UTF-8 -*- import bwidget, Tkinter, sys, os app = Tkinter.Tk(); app.wm_title("Tabs") notebook = bwidget.NoteBook(app, arcradius=2); notebook.pack() Tabs = ['a','b','c'] for i, f in enumerate(Tabs): page = notebook.insert(Tkinter.END, i, text=f) sw = bwidget.ScrolledWindow(page) text = Tkinter.Text(sw) #text.insert(Tkinter.END,f) sw.setwidget(text) sw.pack(side=Tkinter.TOP, fill=Tkinter.BOTH, expand=True) notebook.compute_size() app.mainloop() aタブを選択したら、Frameを表示して、ボタンを配置して、といういつものGUI作成 (または、それをすでに定義してある関数) を表示させたいのですが、bwidget.ScrolledWindow(page)ではもちろん表示されることはありません。 簡単なサンプルコードがのっているページや方法があれば教えてください。よろしくおねがいします。
628 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:14:29 ] つttp://tkinter.unpythonic.net/wiki/BWidgets
629 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 00:39:57 ] tabs = ['a', 'b', 'c'] for i, f in enumerate(tabs): page = notebook.insert(Tkinter.END, i, text=f) p = Tkinter.PanedWindow(page) p.pack(fill='both', expand='yes') b1 = Tkinter.Button(app, relief=Tkinter.SUNKEN, text='Quit-' + str(i), command=app.destroy) b1.pack() p.add(b1) b2 = Tkinter.Button(app, relief=Tkinter.SUNKEN, text='Quit-' + f, command=app.destroy) b2.pack() p.add(b2)
630 名前:>>627 mailto:sage [2009/03/18(水) 12:31:55 ] >>629 コードまでありがとうございます。 一応カタチにはなりました。ありがとうございました
631 名前:デフォルトの名無しさん [2009/03/18(水) 18:51:19 ] 質問です。 osはwindowsxp、 PythonのversionはPython 2.5.2を使っています。 subprocessモジュールを使ってコマンドプロンプトでの以下のような二行を実行したいと思っています。 C:\Python25>doskey mpc = "C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe" $* C:\Python25>mpc test.wav 一行目は subprocess.Popen('doskey mpc = \"C:\Program Files\mplayerc_20080104_jpn_r3\mplayerc.exe\" $*',shell = True) で解決できるのですが 続けて実行するように二行目(mpc test.wav)をどう書けばいいのかがわかりません。 どなたかわかる方お願いしますm(_ _)m
632 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:55:43 ] よくわからんがos.system()を使ってはどうかに?
633 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:12:49 ] >>631 目的は、単にmplayerc.exeで音楽を鳴らしたいの? ならdoskeyはいらんのじゃないか import subprocess mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe' subprocess.call([mpc, 'test.wav']) でできると思うが
634 名前:633 mailto:sage [2009/03/19(木) 12:24:38 ] - mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplaeyrc.exe' + mpc = 'C:/Program Files/mplayerc_20080104_jpn_r3/mplayerc.exe' typoってた 後は、test.wavのフルパスを指定していないので、そこがカレントディレクトリに なっていることを確認汁
635 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:55:34 ] popen2.popen3 使うのと subprocess 使うのはどっちがどのくらいいいの?
636 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:57:55 ] 今はsubprocess推奨で、他はレガシー扱いのはず
637 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:59:43 ] subprocessでいいんじゃない? キッチンシンク的だが、何かに不足することはない。 他の何かだと、ちょっとした設計変更で別の何かに書き換える必要が あったりしていろいろ面倒なことが多い。
638 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:09:41 ] ありがとう勉強になりました ちょっとためしてみたけど subprocess.Popen のあと stdout.read() すると非同期で動くんですね
639 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 23:35:23 ] tupleを戻す関数を呼ぶとき hoge, fuga = hage() と書くのか (hoge, fuga) = hage() と書くので何か違いはありますか? また return hage, fuga return (hage, fuga) でも違いはありますか?
640 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 00:44:27 ] まったく同じ。dis.disで調べろ
641 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:14:32 ] ありがとうございます
642 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:48:50 ] itertools.teeの使い道がいまいちよくわからないのですが どういった際に有用なのでしょうか?
643 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:06:11 ] >>642 俺も使ったことねー _1, _2 = tee(xs) _1の処理 _2の処理 みたいに逐次的に2-pass処理するんなら 結局リストと同様に全要素メモリに持っておかないといかんし、それならリストでいい なんかもう少し高級な場合に必要なのだろうと思った
644 名前:643 mailto:sage [2009/03/20(金) 22:10:54 ] あー多分あれだ、前後の要素みながらやる仕事にいいんじゃないか 全部は要素を持っておく必要が無いが、近傍のN個程度の要素が欲しい、という場合 tee使わんでも書けるけど使ったほうが綺麗に書けるのかもしれない
645 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:05:47 ] >>643-644 回答ありがとうございました。 具体的な例が今のところ思いつきませんが、そういうような処理を要する時に使ってみたいと思います。
646 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:28:10 ] python の正規表現で、以下のような条件をすべて満たす文字列はど のように表現すればいいのでしょうか。 o 英小文字を一字以上含む o 英大文字を一字以上含む o 数字を一字以上含む o ngword(case無視)をふくまない o 全体で6文字以上である ruby とか perl だと以下の正規表現でうまく動くみたいなのですが、 python の場合、どのように書けばいいのかがわかりません... /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$/
647 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:34:51 ] 一つの正規表現でやらなきゃならない理由は?
648 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:39:14 ] 自己解決しました。(?i) が正規表現全体に効いてしまうのですね。 >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?i)(?!.*ngword)^[ -~]{6,}$').search("eka2d______") <_sre.SRE_Match object at 0xb7ef6870> # 英大文字が含まれていないのにマッチ ちょっと面倒ですが、以下のようにする事でうまく動くようになりました。 >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2d______") >>> re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*[nN][gG][wW][oO][rR][dD])^[ -~]{6,}$').search("eka2dA______") <_sre.SRE_Match object at 0xb7f0cd78>
649 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:41:27 ] >>647 レスありがとうございます。正規表現で書ければ、コード本体をいじらなくて も済むという事情があったからです。
650 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:40:07 ] Pygameのインストールが上手くいかないので教えてください WindowsにPython2.5.4をいれ、pygame-1.8.1.win32-py2.5.msiでインストールして >>> import pygame と呼び出しているんですが、何度やっても Trackback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named pygame と出ます。 解決方法があれば教えてください
651 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:13:02 ] >>650 site-packageはみたか?
652 名前:デフォルトの名無しさん [2009/03/22(日) 20:08:25 ] >>651 site-packageを足がかりに調べてみたところ TracLight入れたときに環境変数が色々と書き換えられてたのが原因でした 元に戻したところ無事に動きました ありがとうございました
653 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:02 ] 質問させてください。 Pythonでsubstring(文字列の切り出し) を実装するには、どのような方法で実装するのが一般的 なのでしょうか? 普通にstrNew = strVal.substring(1,5) とかできるのかと思ってたらできなくてびっくりしてます。
654 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:20:54 ] strVal[1:5+1]
655 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:44:04 ] >>654 ありがとうございます。 末尾を指定せずに切り出すのもこれでいけるんですね。 助かりました。
656 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:15:59 ] こういうの知ってないとググり様がない気がする
657 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:16:41 ] と言っても .substring() が良いっていう意味じゃないからね
658 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:23:23 ] >>655 このページが結構役に立つ 0xcc.net/blog/archives/000137.html
659 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:59:58 ] >>656 Python 文字列 切り出し でぐぐればいい
660 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:11:05 ] >>659 おまい頭ええのう
661 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:32:02 ] リファレンス読めば書いてあるじゃない
662 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:48:30 ] リファレンスのどこにあるかを問題にしている訳で
663 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 10:59:15 ] >>662 シーケンス型と文字列型のところみたら乗ってるだろ。 最近のヤツは検索以外の方法で情報を探す能力無いのか。
664 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:09:40 ] Python初めて使うんなら、タダで読めて和訳もされてるチュートリアルぐらいは ざっと読んどくといいぞ 序盤の「形式ばらないPythonの紹介」って所に文字列スライスの例も 出てくる 基本中の基本だからな
665 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:57:44 ] もう少し読みやすくなってるといいよね 次のバージョンの日本語に期待
666 名前:デフォルトの名無しさん [2009/03/25(水) 14:08:40 ] プロセスは動かしっぱなしで定期的にメモリを食う処理をしているんですが Pythonで使わなくなったメモリはOSに返されて居るんでしょうか? インタプリタがヒーブとして握ったままとか無いですか? OSはWindows XPとLinuxです。インタプリタのバージョンは2.6です。
667 名前:デフォルトの名無しさん [2009/03/25(水) 23:59:16 ] enthoughtのETS-3.2.0使えてる人いますか? Enable-3.2.0のインストールで /private/tmp/easy_install-OkiW1r/Enable-3.1.0/build/docs/html/.doctrees/index.doctree が無いっておこられる…
668 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:51:49 ] >>666 pure Python で、不必要なオブジェクトの参照を掴んだままだったらメモリは解放されない。 Javaとかと一緒。
669 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:37:36 ] >>668 えーとdelすればいいのかな?
670 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:41:51 ] >>669 それはやめといたほうがいい、やりたいというならよく調べてからだな Noneでも入れとけばいい
671 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:00:34 ] オブジェクトがGCで解放されるかどうかと「OSに返され」るかどうかは イコールじゃないよ Pythonは最終的にはlibcのmalloc()/free()を使っているから、どういう 戦略を採っているかはlibcの実装によるが、普通はOSにはいちいち返さないはずだ 解放された領域は、再確保時に使いまわせるようにプールされる
672 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:25:17 ] バッファとかキャッシュみたいなもんだね いちいちOSに伺い立ててたら遅いから 借りたものは死ぬまで返さない方針の方が速い
673 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:31:34 ] Rubyかどっかのスレで似たこと聞いてたひといたけど 同じひとかな
674 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:06:48 ] >>671 うん、ある程度はプールされる。 でも大幅にメモリが空いたらOSに返される。
675 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:40:09 ] Windows上ではCPythonとIronPythonがあるけどどっちがいいんだ? やれることに違いはあまりなさそうだが。
676 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:35:54 ] 普通はCPythonじゃねーか? 漏れの場合は仕事でJavaとかJythonもやるのでEclipse上であれこれソースをいじるし、 サーバーサイドも書くので互換性を意識してCPython使っている。 IronPythonはプライベートのお遊び用ってスタンスだけど。 普段の生活でWindowsしか触らないなら、どっちも違いはないかな。
677 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:38 ] なるほど。Ironの方でないと実現できないってケースにぶち当たるまではCPythonをやっとくか。 日本語資料の豊富さでもCPythonが上手のようだし。
678 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:10:54 ] IronPythonはお遊び専用
679 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 00:53:33 ] IronPythonかなり遊べるけど、やっぱ遊び専用だな。 使えないという意味ではまったくない。
680 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 05:56:17 ] 遊びには使えるが 仕事には使えない
681 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 00:06:03 ] 620 :nobodyさん:2009/03/27(金) 23:54:31 ID:KMOu2qJC 「pygameでろくでなしブルース」 www.freepe.com/i.cgi?rokublues プログラマーはあなたでお願いします。 あと、BGM(効果音はくにおから取ってほしい)製作出来る方を募集します。 参加は俺のドット絵のセンスを認めて頂いた場合だけで構いません。 誰も乗らないならそれまでだと受け止めます。 ただ、やるなら夢はでっかく、 最終的に、ネット経由の多人数プレイで、 学園対抗の乱闘騒ぎが出来るゲームにしたいなあ。
682 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:31:42 ] >>681 死ね
683 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 05:42:18 ] >>681 とりあえずサーバー用意してくれよ
684 名前:デフォルトの名無しさん [2009/03/29(日) 06:37:34 ] pc11.2ch.net/test/read.cgi/php/1156612854/620 扇子無いから協力しない
685 名前:デフォルトの名無しさん [2009/03/29(日) 19:08:38 ] Pythonしか知らないのですがメンバ変数とかのメンバとはどういうものでしょうか?
686 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:58:20 ] ここいくとおしえてもらえるよ pc12.2ch.net/test/read.cgi/tech/1235727504
687 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 10:35:18 ] C/C++用語だろ
688 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:28:13 ] win上で走らせるスクリプトで、ファイルを削除じゃなくてゴミ箱に 入れるようにしたいんだけどどうすればいい?
689 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:07:09 ] >>688 Pythonのことは知らないが、Win32APIならSHFileOperation
690 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:10:05 ] >>689 なるほど、Pythonでやるなら拡張モジュール用意しなくちゃだめか。 さんくす。
691 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:59:11 ] >>690 標準ライブラリにある ctypes でできない?
692 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 04:37:22 ] できるよ
693 名前:デフォルトの名無しさん [2009/04/02(木) 08:27:09 ] おはようございます。 春からpythonで開発していくことになりましたが、全て英語で書いてるので全く理解できません。 日本語のマニュアルとか、本とかは出ていますか?
694 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:30:49 ] >>693 若干バージョンが古いけど www.python.jp/Zope/links/python_documents ちなみに本はたくさんある
695 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:32:58 ] >全て英語で書いてるので 理解してないのに良くかけるな
696 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:00:25 ] ttp://www.amazon.co.jp/dp/4797353953
697 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:30:24 ] 英語の勉強も並行したほうがいいのでは。 喋れないのは仕方ないが、ドキュメントも読めないレベルだと 転職も難しいぞ。
698 名前:デフォルトの名無しさん [2009/04/02(木) 10:50:23 ] ありがとうございます!
699 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:23:57 ] 日本語からやり直した方がいい
700 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:28:22 ] >>693 Python やめた方がいい。職業も変えたほうがいい。 もっと自分の能力にあった仕事を選んだ方が幸せだぞ。
701 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:44:45 ] >>700 ありがとうございます!
702 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:35:31 ] >>701 僕を師匠と呼びなさい
703 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 06:17:37 ] >>702 し、ししょおおおおおおおッ!
704 名前:デフォルトの名無しさん mailto: [2009/04/03(金) 18:06:18 ] whileを使って、足し算をするソース教えて。 <条件> ・inputで計算の回数を入力する。 〜例〜 Input any number :3 //計算回数 Input any number :5 //1つ目 Input any number :6 //2つ目 Input any number :4 //3つ目 15 ってなヤツ。
705 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:13:04 ] a=int(raw_input('Input any number :')) b = 0 for i in xrange(a): b+=int(raw_input('Input any number :')) print(b)
706 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:15:45 ] ごめんwhile使ってなかったわ
707 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 20:04:22 ] a = int(raw_input('Input any number :')) b = 0 i = 0 while i != a: b += int(raw_input('Input any number :')) i += 1 print b
708 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:59:29 ] while i < a: の方が自然。
709 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:29:07 ] a = [] while True: a.append(int(raw_input('Input any number:'))) if len(a[1:]) == a[0]: break print sum(a[1:])
710 名前:デフォルトの名無しさん mailto: [2009/04/04(土) 16:08:43 ] >>709 出来た。ありがとう。