[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 08/01 18:14 / Filesize : 164 KB / Number-of Response : 711
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その3



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<164KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef