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/
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 ] ありがとうございます