Py乙
シーケンスをn個ずつに分割したいんだが
何かいい方法ないかい?
例えば 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' を3個ずつに分解して、
['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQR', 'STU', 'VWX', 'YZ'] のような状態にしたい。
str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
print [str[i:i+3] for i in range(0,len(str),3)]
こんなんかなあ。もっと綺麗に書ける方法あるかもしれないけど。
xrangeのほうがよかったか。
re.findall(".{1,3}", s)
使用環境
Python 2.5.2 (r252:60911, Feb 21 2008, 13:17:27) [MSC v.1400 64 bit (AMD64)] on win32
です。
start_new_threadで呼び出した関数の中で
print 使うとエラーで落ちます。
print はスレッドセーフではないという認識でOK?
pythonってヒアドキュメント構文ないの?
やっぱり、ただの文字列リテラルしかないのね。残念。
12 :
3:2008/08/05(火) 01:42:28
>>4 やっぱり、それしかないのかな
>>7 それだと文字列には通用するのだが
リストやタプルのようなシーケンスには使えないのよ
slice オブジェクト使えばできるかなとか思ったけど
class A:
def __init__(self,L):
self.value=L
def __slice__(self,a,b):
return self.value[slice(a,b)]
a=A([1,2,3,(4,5),(6,7),8])
print a[0,3]
行 35 : 'instance' object has no attribute '__getitem__'
じぶんには無理でした(爆)
class A:
def __init__(self,L):
self.value=L
def __getitem__(self,i):
return self.value[slice(i,i+3)]
def sl(self,a,b):
return self.value[slice(a,b)]
a=A([1,2,3,(4,5),(6,7),8])
print a[3] # implicit
print a.sl(3,6) # explicit
下の方がいくらかマシな気がするけど
取ってつけた感が否めない・・・
class A:
def __init__(self,L):
self.value=L
def __getslice__(self,a,b):
return self.value[slice(a,b)]
a=A([1,2,3,(4,5),(6,7),8])
print a[0:3]
a[0] -> __getitem__(self,i) | a[0:3] -> __getslice__(self,a,b)
…orz
import sys
help(sys.path)
17 :
デフォルトの名無しさん:2008/08/05(火) 09:39:35
>>17 そのURLだとアフィリエイトが無効になってるから
貼り直した方がいいよ。
19 :
デフォルトの名無しさん:2008/08/05(火) 10:18:32
アフィに金取られるな
20 :
デフォルトの名無しさん:2008/08/05(火) 10:19:24
金はとられないがな
21 :
デフォルトの名無しさん:2008/08/05(火) 10:23:34
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
Pythonに親でも殺されたのか?
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
夏休みらしくなってきたな
出てくるものがちょっと違うけど。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
t = list(s) + [ None ] * (3 - 1)
print zip(*[t[i::3] for i in xrange(3)])
何で荒らされてるん?
野良p2じゃね?
216 :
デフォルトの名無しさん:2008/08/05(火) 21:54:36
imprt
レス番が一気に飛んでると思ったら荒されてんのか
ひょっとして前スレからか 全然気付かなかった
昨日の昼頃からかな?
書き込もうと思ったら大量に・・・。
お陰で書き込めなかったよorz
220 :
デフォルトの名無しさん:2008/08/06(水) 12:51:07
60 :デフォルトの名無しさん [] :2008/08/05(火) 15:12:42
Pythonスレの荒らし、俺の予想
2007年 6月 2ちゃんねるを本格的に始める
6月 過去ログが見れないことに腹を立て●を購入
12月 VIP初体験
2008年 8月3日 IDが簡単に変更できることを知る
同日 東方シリーズ総合スレッドを荒らす
8月4日 マクロを使って本格的に荒らす
現在 ム板で個人的に気に入らないPythonをスレを潰しにかかる
>>214 いや、お試し●ってやつだろ。
詳しくは知らんが。
Xrea.comでPythonCGI書いてる人いない?
.htaccessに何書いたらうごくのかさっぱりわかんないんだよ。
phpから軸足移そうとしてるんだけれど、とっかかりで躓いていますorz
223 :
222:2008/08/06(水) 17:20:28
自己レス。
.htaccessに
AddHandler cgi-script-debug .py
これ書いてたから変なの出てただけでした。
HTML出力するまではやれました。
加えてwebprog板に書くべきでした。ほんとごめんなさい。
xreaの自動挿入広告は<body>タグに反応するから、cgitbの出力が
広告だらけになるね。
cgitbはなんで<body>を複数出力するんだろ?
>print zip(*[t[i::3] for i in xrange(3)])
これって、いったん[t[i::3] for i in xrange(3)]ができる時点で、
必要なデータを丸ごとメモリ上に展開するので、あまり
コンピュータにやさしくない書き方だと思う。
多少添え字確認するのがめんどくさくても、
>>4みたいに書いた方がいいと思う。
>データを丸ごとメモリ上に展開
listは参照の配列だからメモリ的には大したことないと思う
短いとはいえないが。
import itertools
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def f():
it = iter(s)
while 1:
a = "".join(itertools.islice(it, 3))
if not a:
break
yield a
print list(f())
sに改行とか混じると動かない可能性大。
import re
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print re.findall('..?.?', s)
re.DOTALL
230 :
デフォルトの名無しさん:2008/08/06(水) 21:23:32
君たちPart29には焼く移動しないとこのスレ埋まるよ
>>224 HTMLコメントで本文がかき消されないようにするためだと思う。
あれなら、ソースの最後にプレーンテキストなtracebackが付いてる。
シーケンスっつっても文字列じゃメモリ気にする意味があんまり無いような。
ストーリームじゃないんだから。
メモリが気になるようなシーケンスが対象に出てきたら、
なんか根本的なとこが間違ってる気がする。
TwitterNotifierを動かしたくてMacPortsでpy25-gtkやら何やら入れて、
>>> import gtk
すると「Bus error」と出てPythonが強制終了してしまいます・・・
このエラーの考えられる原因や対処方法があれば教えて頂けませんか?
向こうが本刷れでいいん?
>>231 単に自分が出力したものと
cgitbが出力したもので2つあるだけじゃね?
stdoutはシークできないからな
>>227 そうかitertoolsにそんな関数もあったんですね。
参考になりました。
>>> class A:
... def __init__(self,value):
... self.z = value
>>> class B(object):
... def __init__(self,value):
... self.z = value
>>> object
<type 'object'>
>>> type(A)
<type 'classobj'>
>>> type(B)
<type 'type'>
object を継承すると「型」になって、何も継承しないときは「classobj」になるのは何故ですか?
二つともclassキーワードで作成してるから、classobjになる
のが自然なような気がする今日この頃
islice ってたぶん
def islice(gen, n):
def wrap(n):
i=0
while i<n:
yield gen.next()
i += 1
return wrap(n)
だけのことっぽい、
>>237 3.0 で classic class の方は無くなるから、悩まなくてよくなる
全然多機能だった・・・orz
243 :
デフォルトの名無しさん:2008/08/07(木) 23:58:47
(defun hello-world () (format t "Hello, World"))
打ってもエラーでます。何ゆえ?
PythonはLispではないからです
荒らしが立てたかな?
遅延評価ってこれであってる?
def delay(func):
def decorator(*args,**kw):
class Delay:
def __init__(self):
self.thunk = None
def __getattr__(self,name):
print "called"
if not self.thunk:
self.thunk = func(*args,**kw)
return getattr(self.thunk,name)
return Delay()
return decorator
しまった、スペース変換するのを忘れてた
def delay(func):
def decorator(*args,**kw):
class Delay:
def __init__(self):
self.thunk = None
def __getattr__(self,name):
print "called"
if not self.thunk:
self.thunk = func(*args,**kw)
return getattr(self.thunk,name)
return Delay()
return decorator
んで、テスト
dmap = delay(map)
def trace(x):
print x
return x
first = lambda x,y:x
>>> first("Hello,World!",map(trace,range(10)))
0
1
2
3
4
5
6
7
8
9
'Hello,World!'
>>> first("Hello,World!",dmap(trace,range(10)))
'Hello,World!'
ごめ、間違いだったくさい。
無視して
標準モジュールをちょっと拡張したくて、
はじめて継承ってやつを使おうと思って
以下のようにしたがエラーが出る。
なんか間違ってる?
>>> import shutil
>>> class testsh(shutil):
... def test():
... pass
...
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
>>254 「モジュール」を「継承」して「クラス」を作ろうとしてるの?
モジュールとクラスは別のもので、shutilはモジュールなんだけど、
自分がやりたいことはわかってる?
ボンジュール
ああじゃあ質問をもう少し広くして、
標準モジュールで提供される関数を
差し替えたい。どういう方法がある?
マドモアゼール
>>257 import os
os.walk = lambda x: x
os.walk('.')
とかやってみたら?
でも
__builtins__.len = lambda x: x
とかやると、ぱいそんが発狂するのでやめたほうがいいです
「おっぱい発狂」まで読んだ
>標準モジュールで提供される関数を
>差し替えたい。
ソースコードいじるしかないだろうけど、
そういう使い方は標準では用意されてない。
新しい定義をバインドするだけじゃね
from hage import hige してるのが面倒なんだよなとか思ったけど
それならソース書き換えるかそのモジュールの名前空間を上書きすればいいだけか
>from hage import hige してるのが面倒なんだよなとか思ったけど
それが面倒というのがよく分からない。
標準モジュールの関数とかって、他のモジュールが依存してる
ものとかもあるだろうし、あんまり動作を変えない方がいいと思う
そういうのは静かにやってくれ
wxpythonって何で命名規則をpythonに合わせてないの
それだけで使う気しねえんだけど
名前変えたら整合性のチェックが大変だからだろ
PythonにあわせたらwxWidgetsに慣れてる人から苦情が来る
271 :
デフォルトの名無しさん:2008/08/15(金) 09:52:20
pygameのドキュメント和訳作業さっさとやれ屑共
「何ぞや?」が馬鹿っぽい
名ばかりのコミッターより1000000000倍マシ
276 :
デフォルトの名無しさん:2008/08/17(日) 01:52:53
いつも思うんだけど、もう 2.5 のドキュメント日本語訳プロジェクトは破棄して、
2.6 の翻訳にとりかかるべきじゃないか?
>>273 Zope 3の記事を見て悔しがる奴なんて日本に二人くらいしかいないよな(ww
ネットで匿名で文句たれてる奴は負け組とか呼ばれるらしいよね
秋葉で事件起こした彼が最近の代表例らしいけど
論理的思考力の欠落というやつですね、わかります
家族を悲しませるようなことをしてはいけませんよ!
281 :
デフォルトの名無しさん:2008/08/17(日) 22:09:31
File "d:accum.py", line 34
self.x += self.fun(x) if self.fun else x
^
SyntaxError: invalid syntax
はじめてのpythonネットワークプログラミングにのってたやつ。
何でエラー?
クソ本だからだろ(ww
まあ念のためコード動かしてるPythonのバージョンを調べてみろや
2.5より古いバージョン使ってるとか?
CとかC++とかJavaとかで躓いてPythonに流れ着いた訳なんですが、Pythonって凄いですね!プロンプトからコードが書けるなんて!!
いやまあなんつうか、インタプリタってのはそういうもんだ
つまずいた理由がよくわかる本当に秀逸なレスだと思う。
284はネタだろ、
ネタだよな、
ネタだと言ってくれ!!!
こんな多様な時代だもん、ふつうにありえるだろ
Pythonを知ってしまったら他ので仕事できなくなるよ
CはおろかJAVAでつまずくようなヤツが
他の言語を扱えるようになるとは到底思えない。
趣味プログラマなんだろうしほっとけよ
>>290 javaは、java言語自体ではつまずかないかもしれないけど
これでWebアプリケーションを作ろうと思ったら
乱立するフレームワークの前に何やっていいのかわからなくなって
途方にくれると思う。
というか、途方にくれた。
>>292 そういうつまづきかたをするなら
べつにpythonでもかわらないんじゃないのかな
まあでも、むかしならBASICあたりでプログラミングをはじめるのが
ふつうだったわけで
いきなりCやJavaは、やっぱり敷居が高いんだとおもうよ
ごめんなさい・・・・・・
ところで今どきJAVAって携帯ぐらいにしか需要ないんじゃないの。
>>295 あれほどライブラリが充実している言語は他にないし
底辺でもある程度コード品質が保てることもあって
ITドカタご用達です。
そうなんだ。朽ちてるわけでもないんだね。
Python使ってもドカタ体質な奴はドカタっぽい仕事してると思うけどな。
通り魔とかやらかさないで欲しいと思うわ。
書き込みテスト
通り魔する気力があったら仕事しろと。
底辺はJava使っても糞コードしか書けないから底辺なんだ
演算結果を引数のCollectionに突っ込んで戻り値はintの終了コード
変数名はシステムハンガリアン
例外もGenericsも使えない
俺は会社を辞めるぞジョジョォォッ!
>>301 >俺は会社を辞めるぞジョジョォォッ!
そして社会の底辺まっしぐら?
ドカタ以下じゃん(ww
底辺の気に障っちゃったみたいだな
内定無いのに辞めるとか言わないだろ
301はスキル以前にパーソナリティに問題があって底辺なんだとオモタ。
性格悪いの多そうだねこのスレ。
この板自体がそうか。
308 :
デフォルトの名無しさん:2008/08/20(水) 11:29:02
変数のスコープ(?)について質問です。
x = 10
def fun1()
return x*2
print fun1()
-----
出力結果:
20
ですが
x = 10
def fun1()
x = x*2
return x
print fun1()
のように関数fun1()内でxへ代入しようとするとエラーになります。
「グローバス変数xは関数内で参照することはできるけど、値を変更する事はできない。」
って事でしょうか??
x = 10
def fun():
global x
x = x * 2
return x
print fun()
310 :
デフォルトの名無しさん:2008/08/20(水) 11:47:47
>>298 通り魔のマスコミ発表そのまま信じてる奴なんかいるのか?
そもそもトヨタ系派遣会社の問題なんてマスコミ報道するわけないから
適当な犯行理由でっちあげて報道するだけだろ
板違いの話題を蒸し返すな
312 :
308:2008/08/20(水) 11:57:37
globalってのあったんですね。ありがとうございます。
ただなんで前者はOKで後者がエラーなのか、理解したいのですが、
"そういう仕様だから"的な感じで思っておいてよいでしょうか??
x への代入文があるので、Pythonはxがローカル変数なんだと考える。
x = x * 2 の右辺のxは(ローカル変数としては)未定義なので、エラー。
そもそもエラーメッセージを見ればわかると思うが
>>312 > "そういう仕様だから"的な感じで思っておいてよいでしょうか??
まあそうだね
pythonではローカル変数を定義/宣言するための
varだのmyだのいう特別な構文はもたない
ローカルに無い名前への代入によってローカル変数が導入されるって仕組みだから、
global変数に代入したい時はちゃんと書かないと区別できない
同様に、C++/Javaみたいなクラススコープも存在しないから、インスタンス変数に
アクセスするときには常にselfと書く必要がある
こっちは代入だけでなくて、参照するときも、そう
もっと学習がすすめば、ネストした関数(クロージャ)で、もう一度そのことに
気づくと思う
関数の中でグローバルスコープにある変数を使おうとしない方がいいよ。
318 :
デフォルトの名無しさん:2008/08/20(水) 12:12:19
>>298-300 で板違いの話をはじめてるが、あえて反論されるタイミングで
「板違い」を言い始めるか。反論されるのいやなら他のスレで話題振れよ
訳:かまってほしいな
それぐらいかまってほしかったってのが本音
>>320 ->
>>319-321 >>298-300 ところで別スレで放置されてるこの話題は誰もレスしないの?
16 名前:デフォルトの名無しさん 投稿日:2008/08/14(木) 12:50:18
Pure Pythonなコードをdll exportするようなモジュールってある?
ctypesの逆をやりたい
別スレの話題をこっちでやる必要はあるのか?
>>322 それ書いたの俺
要するにPythonでdll作りたいってことで何がどの程度馬鹿げているかは承知してる
dll injectionの延長でエクスポートテーブル生成すればどうにかなりそうとか
呼び出し規約が複数あるけどstdcallだけでいいかなとか
そのくらい調べたところで今回やろうとすることにネイティブコードは必要ないことに気づいた
PIL使ってみてんだけどさ、
これで画像を結合させるってのは
どうやればいいんだろ?
画像サイズが不定なので、都度サイズとって
適当に二つのサイズを合わせるとこまではできたんだけど、
それをくっつけるにはどうしたらいいのかな?
いまは二つの画像のサイズの結合ずみのサイズの
Imageオブジェクト新しく作って、pasteがガンガン貼っていく
やり方をしてるんだけど、もっといい方法があるような気がして。
>>326 新規Imageオブジェクトに貼り付けていく方法で良さそうに思う
cropはあるけどキャンバスサイズの拡大(画像の拡大ではなく)はなさそう
328 :
318:2008/08/21(木) 07:42:19
ありがとうございます。めっちゃ参考になります。
その後も調べてたらチュートリアルに下記の記述がありました。
>関数を 実行 (execution) すると、関数のローカル変数のために使われる新たなシンボルテーブル (symbol table) が取り込まれます。
>もっと正確にいうと、関数内で変数への代入を行うと、その値はすべてこのローカルなシンボルテーブルに記憶されます;
>一方、変数の参照を行うと、まずローカルなシンボルテーブルが検索され、その後グローバルなシンボルテーブルを調べ、
>最後に組み込みの名前テーブルを調べます。
>従って、関数の中では、グローバルな変数を参照することはできますが、直接値を代入することは (global 文で名前を挙げておかない限り) できません。
ttp://www.python.jp/doc/release/tut/node6.html チュートリアルは始めに目を通しておくべきした。。( ;´Д`)スミマセン
pythonでDB扱うとき、デッドロックとかでコミットに失敗した時にどうやって検知すればいいのでしょうか?
ヤフオクのmystatusを取り込みたいけどうまくいかね〜〜〜〜〜
どっかにサンプルありませんか?
psp3000ってpython3000のパクリですか?
昔SimCity3000というゲームがあってな
そうだね、プロテインだね。
a=(2,5,10)
for x in a:
print x
>for x in a:
がどういう意味を持っているのかわかりません。解説サイトに説明が書かれていないので
どなたかこれの意図を翻訳していただけませんか。
有難うございます。とりあえず頑張ってみます。
もっとまともな答えをください
342 :
330:2008/08/23(土) 23:27:09
事故解決しました
343 :
330:2008/08/24(日) 00:10:46
自己解決していません。私はまだ解決していません。
まともな答えを得るにはまともな質問がいる
検知できなくて困ってるコードは?
346 :
330:2008/08/24(日) 08:16:01
私のレス番を騙る人がいるようですが、一体なにがしたいのでしょう。
使っているのはpsycopg2です。
マルチスレッドで使っていて、行ロックでデッドロックの可能性があります。
PostgreSQLはデッドロックを検知したらトランザクションをアボートさせますが、
Python側ではそれをどうやって知ることができるのでしょうか?
例外が発生するのでしょうか、それともcommit()の返り値でしょうか?
変なのが沸いてるから酉つけたほうがいいべ
つーか、モジュールのドキュメント読めばいいんじゃねえの
>>330 tests/test_transaction.py
lib/errorcodes.py
とかそれっぽいよ。自分のとこじゃ試せないから適当だけど
詳細について説明をお願いします
351 :
330:2008/08/24(日) 11:31:17
>>349 情報ありがとうございます。調べてみます。
イケメンハッカーが自己処理しました。
353 :
330:2008/08/24(日) 15:25:02
やっぱりわかりませんでした。
354 :
330:2008/08/25(月) 09:23:00
>>353は騙りです。
psycopg2.extensions.TransactionRollbackErrorが投げられるようです。
>>349さん、ありがとうございました。
355 :
330:2008/08/25(月) 09:46:56
やはりすこし微妙な点があります。
その他に利用可能なライブラリはありますでしょうか。
デバッグに利用ができるようなもの。
356 :
330:2008/08/25(月) 09:47:50
自己解決しました
357 :
330:2008/08/25(月) 09:57:23
詳しい人に聞いています。
そうでないのなら黙っててください。
死ね
359 :
358:2008/08/25(月) 23:25:57
自己解決しました
360 :
デフォルトの名無しさん:2008/08/26(火) 00:15:38
python初心者です。
lists = ['a','b','c','d','e','f','g']
i = [0,1,4]
があるとき、mapとlambda関数(あるいは何か)のような、組み合わせで
>>[a,b,d]
と表示させたいんですが、可能であれば、方法を教えてもらえないでしょうか?
361 :
デフォルトの名無しさん:2008/08/26(火) 00:16:46
間違えました、
lists = ['a','b','c','d','e','f','g']
i = [0,1,4]
であれば、
>>[a,b,e]
です。
うーん。できそうで、できない。。
362 :
デフォルトの名無しさん:2008/08/26(火) 00:18:20
またまた、間違えました、
lists = ['a','b','c','d','e','f','g']
i = [0,1,4]
であれば、
>>['a','b','e']
です。
うーん。できそうで、できない。。
>>> lists = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> indexes = [0, 1, 4]
>>> [lists[i] for i in indexes]
['a', 'b', 'e']
>>> [lists[j] for j in i]
['a', 'b', 'e']
>>> map(lists.__getitem__, i)
['a', 'b', 'e']
>>> from operator import itemgetter
>>> itemgetter(*i)(lists)
('a', 'b', 'e')
>>> list(itemgetter(*i)(lists))
['a', 'b', 'e']
itemgetterが複数の引数をとれるとは
366 :
デフォルトの名無しさん:2008/08/26(火) 00:21:39
すごい。完璧です!
30分以上考えていたのに。。。流石です。
ありがとうございました!
>>> [slice(x) for x in [0,1,4]]
[slice(None, 0, None), slice(None, 1, None), slice(None, 4, None)]
>>> [slice(x,x+1) for x in [0,1,4]]
[slice(0, 1, None), slice(1, 2, None), slice(4, 5, None)]
>>> glist = []
>>> for e in [slice(x,x+1) for x in [0,1,4]]:
... partial = list('abcdefg')[e]
... glist.extend(partial)
>>365 def itemgetter(item):
return lambda x: x[item]
これじゃ駄目なわけだ
>>> [lists[j] for j in i]
['a', 'b', 'e']
>>> map(lists.__getitem__, i)
['a', 'b', 'e']
この2つってどっちの方がいいんだろう。
下のはパラノイアっぽいな
実測しよう
読み易さで上かな。
下のが速いみたいだけれども
こんなのがボルトネックになるのはありえないから上を選ぶべき
s/ルト/トル/
下を書いちゃう人は、変態か精神病のどちらか。
377 :
デフォルトの名無しさん:2008/08/26(火) 19:41:55
sx,sy,sz = [-5,-5,-5]
ex,ey,ez = [5,5,5]
dx = 0.0212312(例えば)
listx = []
for x in xrange( sx, ex, dx):
listx.append(x)
ということをやりたいのですが、浮動小数点だとできないようです。
こういった簡潔な表記でできる方法ってありますか?
379 :
デフォルトの名無しさん:2008/08/26(火) 20:15:36
申し訳ありません。
自分なりにググったのですが、色々甘かったようです。
ご指摘の通りです。
教えていただきありがとうございます。大変助かりました。
python range float で検索すればOKだな
日本語のサイトしか検索しない、
のモードにチェックが入っていてうまく検索できませんでした。
お恥ずかしい・・・
383 :
382:2008/08/27(水) 00:07:03
すまん、今繋がった
急ぎの時は internet archive を見るのだ
385 :
デフォルトの名無しさん:2008/08/28(木) 00:34:48
時刻の文字列をtimeモジュールのstrptimeメソッドで処理したいんですが
"2008-08-27 22:51:01"
の場合は
print time.strptime("2008-08-27 22:51:01","%Y-%m-%d %H:%M:%S")
で正常に処理されますが
"2008-08-27 22:51:01+09:00"
の場合って2番目のパラメータのformatはどう記述すればいいんでしょう?
man date
24 名前:仕様書無しさん []: 2008/08/24(日) 05:21:20
hi があったので low を探したら nen tuki が見つかりました・・・
day にしろよ・・・
自己解決しました
済みません真面目に質問をしています。
正常な回答を寄せていただける方以外レスは控えてくださいますようお願いします。
who are you?
>>390 日本語訳すると「何様のつもりだ?」ですね、分かります。
pygameのドキュメント和訳する作業始めろ屑ども
Please start transulation by pygame you shit.
Please start transulation by pygame you shit.
395 :
385:2008/08/29(金) 09:46:54
すみません
お願いしますから
早く回答くれませんか
strptimeメソッドの処理について私が悩んでるのに
質問スレで回答が付かない理由がよくわかりません
おねがいします
396 :
385:2008/08/29(金) 09:48:51
"2008-08-27 22:51:01+09:00"
の
+が
該当するところが
%+でいいのかどうなのかが
知りたいだけです
それが解決すれば
この問題は終わります
It was accomplished by hansame hacker.
>>> time.strptime("2008-08-27 22:51:01+09:00","%Y-%m-%d %H:%M:%S+09:00")
(2008, 8, 27, 22, 51, 1, 2, 240, -1)
399 :
385:2008/08/29(金) 11:24:07
おねがいします。
私は本当に困っているのです。
ふざけるのもいい加減にしてください。
早く答えてください!
time.strptime()では少なくともその形式のタイムゾーンオフセットは
処理できないようだから、strptime()一発でやるのは諦めれ
どっちみちtime.struct_timeは単なるCのstruct tmのラッパーだから
タイムゾーンの情報なんぞ持たないし持てない
・+でsplit()して前半をstrptime()に食わせてstruct_timeを構築
・それをもとにより高級なdatetime.timeを構築
・タイムゾーンオフセットの処理は自前で
こんな感じになるんじゃないの
>>395 >質問スレで回答が付かない理由がよくわかりません
ここは「お勉強スレ」で「質問スレ」じゃないから。
Please say joke between rest.
402 :
デフォルトの名無しさん:2008/08/29(金) 14:52:45
おそらく385以降の385は385でないと思われ
なぜならオレが385だから
>>402 私が385です。勝手に名乗らないでください。
カオスってるな
なわりにシェルのdateコマンドには+%:z とかあるんだよな
pygameのドキュメント和訳作業に従事しろぼんくらども
Please start transulation for pygame you gabage.
スルーすべきなんだろうけど、ことごとく間違ってるぞ。
なんだかんだで平和だな
一日後の時刻を取得する関数wwwwww
def get_tomorrow_date():
... time.sleep(86400)
... return time.localtime()
さっさとPyPyのドキュメントを和訳作業に入ってくれよハゲども
お願いかよ
413 :
デフォルトの名無しさん:2008/08/30(土) 17:54:59
LL future!
自己解決しました
PILのドキュメントを和訳しろロリコンども
ごめんシスコンなんだ
いま思うとシスコーンってすごい商品名だな
シリコーンでも吹けるぞw
某社のカップ自販機ウーロン茶原液に材料として入ってるが、無害なのか?
シリコンとシリコーンは違うらしい
勉強になります
pythonってどういうときに使うの?
CGIだったらPHPのほうが上だよね?
小物アプリだったらrubyのほうが上だし、
どういうときに使うの?
rubyを使いたくないとき
423 :
デフォルトの名無しさん:2008/09/01(月) 21:04:40
rubyのほぐぁあ小物アプリにむいてるねですか?
CGIでも小物アプリでもないときに使え
小物はrubyのほうが向いてるってほんと?
ライブラリはPythonの方が多そうなのに
好きな方使え
>>421 どうしてもPythonじゃなきゃだめだっていうのなら
3DCG系のソフトなどでPythonでプラグイン書くってのがけっこうあるよ
プログラミング言語なんぞは、問題に適した言語をその都度選択すればよろし
RMTPyのドキュメント和訳しろよくずども
Python/Perl/Ruby/PHPなんて大体同じなんだからPython使えよ。
Pythonほど未完成な言語はないだろう。
Rubyには絶対かなわない
ruby厨は巣に帰れ
Pythonにはjavascriptにおけるfor each...inはないの?
//js code
for each(let value in {a:1, b:2, c:3}){
%09print(value);
}
js>1
js>2
js>3
#Python code
a={"a" :1,"b" :2,"c" :3}
for v in {"a" :1,"b" :2,"c" :3}:
%09print a[v]
これしかない?
ミスったfor v in {"a" :1,"b" :2,"c" :3}:→for v in a:
単純にディクショナリをforループで回すと、要素の順番は保証されないので
もしa["a"]、a["b"]、…のようにキーの昇順に取り出したいなら
for key in sorted(a.keys()):
print a[key]
とするといい
439 :
436:2008/09/02(火) 07:45:43
例が悪かったかな。
>単純にディクショナリをforループで回すと、要素の順番は保証されないので
それは知ってる。
a[key]みたいに連想配列のキーを指定して(見た目)間接的に値にアクセスじゃなくて変数hogeに直接値が代入されないかって事。
Pythonにはそういう文無い?
a.values()もあるけどこっちでいいのか?
馬鹿が湧いているようです
黙ってdirとhelpを片っ端から適用してみろよ
やはりRubyが最強なようだ
>>439 for v in a.itervalues():
っていうか、436からどうやってそれを読み取れと…
ねーねー 9月になったのに…
夏休みが終わってない厨房がいるのはナゼなんだぜ?
py2exeはここ?
>>445 大学は9月ちょい初めぐらいまで夏休みだろ
rubyが小物に向いてるんじゃない。
小物に向いてるのがrubyなだけだ。
Python3.0になったあと、
各モジュールが大丈夫かどうかの確認とかしないとなんだよな。
楽しみでもあり苦労しそうだなあ。
2to3 はまだまだだし、パッケージが rename されたりしてて
network 系のツール移植やろうとして途中でやめちゃったよ。
451 :
デフォルトの名無しさん:2008/09/03(水) 12:56:35
ところでgoogle chromeはこの板ではスコープ外?
なんでここで聞くの?
Python入ってんの?
>>452 パイソンはGOOGLEが作った言語なんです!
パイソンはGOOGLEが作った言語なんです!
googleが作ったなんて初耳だな。
google設立は1998年、Pythonが作られたのは95年以前。
タイムパラドックスか?
「Google言語。」の弊害だな
設計者がGoogleにいるってだけでしょ
みんPy(笑)か。
どっちも香ばしいな。
.
google自体は95,6年にすでにあったけどな。会社設立したのが98年ってだけで。
設計者がGoogleに行ったのはつい最近
463 :
デフォルトの名無しさん:2008/09/03(水) 23:32:28
>>455 >「Google言語。」
これ昔なんかの本のコピーになってるの見たよ。
知りあいのGoogle社員に聞いたら、めっちゃイヤがってた
JAROに通報するんだ
TV局やJAROみたいなところに電突するようなヤバいやつの電話番号は
警察に行ってブラックリストに載るらしいぞ
ガンバレ(wwWwwwWwWWwww
中学生の発想だな…
たしかに(プ
今時JAROとか小学生でも言わないわ(プ、ププププ
やはりRubyが最強なようだ
このスレを見ている人はこんなスレも見ています。(ver 0.20)
Rubyにはプログラミング言語以上の価値があると思う [WebProg]
470 :
デフォルトの名無しさん:2008/09/04(木) 11:23:17
pythonって構造体とか無いんでしょうか?
構造体配列とか使いたいんですが。
タプルとかは出てきたんですけど、なんか目的に沿わないようで。
クラスはメンバ作れても、配列にできなくて。orz
皆さんそういう時ってどうしてますか?
rarfile
http://rarfile.berlios.de/ これで
r = rarfile.RarFile("path.rar","r")
print r.read(r.infolist()[0].filename)
するとException: Error reading fileが出るんだけど、これは何故?
infolistやらfilenameは取得できる。
クラスインスタンスを固定数だけ配列みたいに造るのって。
class kls: pass
klsins_list = [kls() for r in range(0, 5)]
でいいのかな。もっと一般的な書き方ってあったっけ。
475 :
473:2008/09/04(木) 16:55:57
> For decompression uses external unrar command line utility.
orz...すいません出直してきます。
クラスが配列に出来ないってどういう事?
おそらく
>>471の言っている「配列」は
「メモリ上の一続きの領域に要素なりメンバが並んでるもの」
ってことなんじゃないか
構造体配列の「配列」もそういう意味で使ってる気がする
(構造体の配列ではなく)
固定長配列なんて久しく使ってないなあ
Microsoftの作った構造体とか頭が痛くなる
馬鹿はなにやってもダメだな
python2.6以降なら名前つきタプルが使えるお
>>> import collections
>>> Point = collections.namedtuple('Point', 'x y z')
>>> p = Point(1, 2, 3)
>>> p
Point(x=1, y=2, z=3)
>>> list(p)
[1, 2, 3]
>>> p.x
1
>>> p[0]
1
おもしろいねそれ
ordereddictは?
>>471っす
なんか、自分の理解不足と説明不足でグデグデにしてしまって。(´Д`;
>>476 構造体をを配列にするのを代わりでクラスでできないかな?と思って。
自分でやった中ではできなかったので。orz
>>477 メモリ上・・・までは意識して無かったです。;
構造体配列は、一応構造体の配列のつもりで。
>>481 お、なんか面白そうですね。2.6以降っすか。無いと思ったらbeta版なんですね。
自分はいいけど、他の環境も更新しないと動かないのはちと痛いっす。;
ちょっとやりたいことをCで書いてみます。
・・・と行制限が。(´Д`;
#include<stdio.h>
struct Frame{
char name[32];
unsigned int id;
unsigned int dlc;
};
int main(void){
struct Frame frm[16];
strcpy( frm[0].name , "ENG16");
frm[0].id = 0x64;
frm[0].dlc = 8;
strcpy( frm[1].name , "MET08");
frm[1].id = 0xFF;
frm[1].dlc = 6;
printf("%s : %x / %d\n",frm[0].name,frm[0].id,frm[0].dlc);
printf("%s : %x / %d\n",frm[1].name,frm[1].id,frm[1].dlc);
return 0;
}
一応こんなことをやりたいな〜と。
特に、
frm[0].id = 0x64;
frm[0].dlc = 8;
のトコみたく、メンバ(?)をバラバラに指定できると助かります。
魚っ!タブがorz
見にくくてすいません。((orz
>>486 class Frame:
def __init__(self, name, id, dlc):
self.name = name
self.id = id
self.dlc = dlc
if __name__ == '__main__':
frm = list()
frm.append(Frame(name="ENG16", id=0xff, dlc=8))
frm.append(Frame(name="MET08", id=0xff, dlc=6))
print "%s : %x / %d"%(frm[0].name, frm[0].id, frm[0].dlc)
print "%s : %x / %d"%(frm[1].name, frm[1].id, frm[1].dlc)
あっ!もっと沢山の回答お待ちしてますorz
>>> import itertools
>>> params = (("ENG16", 0xff, 8), ("MET08", 0xff, 6), ("MET08", 0xff, 6))
>>> frm = list(itertools.starmap(Frame, params))
>>> [Frame(*args) for args in (("ENG16", 0xff, 8), ("MET08", 0xff, 6))]
>>488 SUGEEEEE!!!!動きました。
やり方自体はあったんですね。見つからなかっただけで。
構造体とかそっち方面から情報漁ってたんですが、全然辿り着かなくて。
んで、宿題ではなく業務のおうc(ry
・・・効率化をしようかと。w
元々、数十、数百、てか千弱のとある要素を、手動でやいやいしてたみたいで。(’A`;
自分なりに作ったものの、全部ただの多次元配列でやったんで、
ソートとかもう。orz
これで大分簡略化できそうです。
と、実はまだ関数のselfがきっちり理解できてなかったりします。(^^;
>>> k = ('name', 'id', 'dlc')
>>> v = (("ENG16", 0xff, 8), ("MET08", 0xff, 6))
>>> [type('Frame', (object, ), dict(zip(k, i))) for i in v]
真似しなくていいぞ
早いとこ転職先探すべきだろう
>>496-498 これはいいものを教えてもらいました。ありがとう。
早速お試しということで、N 次元のベクトル x の2ノルム sqrt(x' * x) の計算を
P 個のプロセスでデータ分割して並列化する簡単なコードを書いてみました。
4-way Opteron 2.2GHz, SuSE Linux 9.3 (x86-64), Python 2.5.2, processing 0.52 で
N = 10,000,000 として P を変えると以下のような結果になりました。
P, time [sec], speedup
1, 2.070533e+00, 1.00
2, 1.077326e+00, 1.92
3, 7.130971e-01, 2.90
4, 5.523460e-01, 3.75
通信はスカラ値の gather と broadcast を各1回(processing.Pipe を使いました)。
単純なコードにしては上出来のスケーラビリティと言えましょう。
PyPar と違ってきちんとプロセス間通信をサポートしているし、
マスタ・ワーカ方式以外の並列化手法も採れる。これは良いです。
個人的には processing のためだけに 2.6 を入れてもいいぐらいです。
こうなると processing をバックエンドにした MPI もどきとか OpenMP もどきが
欲しくなりますねー。
情報弱者の特徴
1 : 一次情報に接触しようとしない
2 : 人に教えてもらわないと気づかない
3 : 英語ができない
4 : その割には偉そう
5 : 自分の能力のなさを棚に上げて他人を逆恨みする
一次情報を小奇麗にまとめてくれた二次情報があるのに
妙に意固地になって利用したがらない俺がいます
>>501 そうやって最新情報を使っているひとたちとの差が広がってゆくんですね、分かります。
>>501 >4 : その割には偉そう
>5 : 自分の能力のなさを棚に上げて他人を逆恨みする
505 :
デフォルトの名無しさん:2008/09/06(土) 14:35:44
>>499 MPIもどきはPythonでの並列プログラミングへのアプローチの仕方としては良くない。
複雑なことをやろうとすればするほど、CやFORTRANでMPIライブラリを使うときの
ようにアホみたいにソースコードが長くなって、デバッグが困難になる。はじめか
らCあるいはFORTRANでやってりゃよかったということになってしまうだろうなと思う。
C/C++、FORTRANならキャッシュラインサイズやデータアクセスの局所化を意識した
ソースコードの最適化+インテルコンパイラで爆速になるし、PsycoとかPyPyとか
JITコンパイラがあるとはいえ、Pythonの勝負できるフィールドではないと思う。
OpenMPもどきでお手軽にデータ並列のプログラムを作るぐらいがPythonらしい。
7:自己解決シマシタ
MLでアホが投稿してて萎えた
Python使いの特徴
1 : 一次情報に接触しようとしない
2 : 人に教えてもらわないと気づかない
3 : 英語ができない
4 : その割には偉そう
5 : 自分の能力のなさを棚に上げて他人を逆恨みする
6 : 都合が悪くなると逃げる
7:自己解決シマシタ
8 : Rubyが諸悪の根源と考えている
8 : 508のごとくすぐキレる
pythonのソースコードを2ちゃんに張るじゃん。
そしたら、TABが無効化されるので、
そのままコピペしても動かないよね。
8 : 温泉とかキャバクラとか行く暇があったらpygameの翻訳をする
>>510 別に。
基本的にスペースで書くから問題ない。
10: Batteries Inserted
>>510 無効化じゃなくてブラウザの仕様で見えなくなってるだけだ
2chに貼られたソースコードをコピペして動かすことってそうない気がする。
オレはあるから、頻度は主観の話だな。
コードを書かれることを考えていない2ch側の問題。
オレはないから、頻度は主観の問題だな。
HTMLのダイエットを最優先にしている2chにコードを張ったり使おうと思う奴の問題。
dat には入ってるんだから pre 表示するブラウザ作ればいいだけじゃね?
AA ズレるけどな
JaneDoeStyleならアンカにカーソル乗せて
ポップアップしたらインデントされてるよね
それコピペすればいいんじゃね
専ブラの作者に頼めばいいじゃない
コードが見難いので、TABが表示されるモードつけてくれ!って
521 :
デフォルトの名無しさん:2008/09/07(日) 12:30:15
夏時間付きローカルタイムのdatetimeのインスタンスからUTC時刻を得るにはどうしたら良いのでしょうか?
>>> import pytz
>>> utc = pytz.utc
>>> london = pytz.timezone('Europe/London')
>>> summer = datetime.datetime(2008,9,7,10,tzinfo=london)
>>> winter = datetime.datetime(2008,1,7,10,tzinfo=london)
単純なタイムゾーン変換では夏時間の違いがなさそうです。
>>> summer.astimezone(utc)
datetime.datetime(2008, 9, 7, 10, 0, tzinfo=<UTC>)
>>> winter.astimezone(utc)
datetime.datetime(2008, 1, 7, 10, 0, tzinfo=<UTC>)
UTCからローカルタイムへの変換はpytzにもメソッドがあるのですが
逆方向への変換の方法がわかりません。
どなたかご存知ありませんか?
ドキュメント、穴があくぐらい読んだのか?
まだ穴はあいていませんが、読んでいるのはライブラリリファレンスとpytzのソースとテストケースです。
タイムゾーン変換に関してdatetimeはtzinfoに丸投げでtzinfo.utcoffset()が夏時間も込みのオフセットを返さなければならないところが機能していないようなのです。
そうなると、tzinfoの作り方が間違っているかもしれないのですが、pytzのソースを見る限りモジュールの外から使う場合にはpytz.timezone('xxxxxx')で作られるようにモジュール関数が作られていますし、テストケースでもこれが使われています。
使い方に関しては、テストケースの最後の方にutcoffset関連のテストの中で一度ローカルタイムへ変換されたものの逆変換が、 utc_dt = loc_dt.astimezone(UTC)で行われているます。
何か大きな勘違いをしているのでしょうか?
初歩的なところですみませんが質問させてください。
Apache上でPython動かそうとしてるんですが、ファイルにアクセスするとテキストファイルとしてしか認識されないです。
環境は以下の通り
Windows Vista SP1
apache2.0.59
python2.5.2
mod_python3.3.1
httpd.confには下記の記述を追加してある。
LoadModule python_module modules/mod_python.so
<Directory "/example">
Options FollowSymLinks
AddHandler mod_python py
PythonHandler test
PythonDebug On
</Directory>
Forbiddenページに出る下部のサーバ情報は下記のように出てる。
Apache/2.0.59 (Win32) mod_python/3.3.1 Python/2.5.2
Apache上ではちゃんと動いてるみたいなんだけど、さっぱりわからない…。
どうすればちゃんとpythonとして実行されるんでしょうか?
標準モジュールのtestと衝突してるとか
>>525 ありがとうございます。
PythonHandler mptest
に変更して、アクセスするファイルもmptest.pyにしてみましたが変わりませんでした。
>>524 あとは <Directory "/example"> が怪しげ。c:/example って解釈されてる気がする
ブラウザからアクセスしたときにスクリプトのソースが見えるのなら
DocumentRoot の下にそのスクリプトを置いていると思う
その DocumentRoot を c:\Apache\htdocs と仮定すると
* c:\Apache\htdocs\example に mptest.py を設置
* <Directory "c:\Apache\htdocs\example"> ... </Directory> に変更
>>527 うおー。動きました!
Pythonとは全く関係ないところでしたが、ご教授ありがとうございます!
pythonでlistやtupleにflattenを追加して欲しい。
いちいち
>>> import _tkinter
>>> _tkinter._flatten
とか
>>> import compiler
>>> compiler.ast.flatten
とかしたくない。
flatten = _tkinter._flatten
とか
from compiler.ast import flatten
でお茶を濁す。
そんなに頻繁に使う?
ここにいる方々って、
やはりバイブルとかも一通り読んで、言語仕様把握しちゃってるんでしょうか?
やりとり見てるとSUGEEEE!!!
なので(´Д`;
各人が自信のあるネタの時に書き込んでるので、
合計しちゃうとそういう風に見える。
バイブルって何だっけ?
標準モジュールの中にも未だに知らないのがあるから困る
公式のドキュメント一式
537 :
デフォルトの名無しさん:2008/09/11(木) 16:34:56
今からならPython3覚える方がいいの?
当分は2.Xが主流じゃまいか?
2.x覚えつつ3.0を予習といった感じで
Ruby1.9のが先進的だからそっちを覚えた方が良いよ
むしろ全部やれよ。
今すぐ始めるんだったら、2.x がいいと思う、3.0 は情報少ないし、未対応なものも
まだまだ多いし、・・・
普通に2.5でいいだろ。
pythonの中の人もそう言ってる。
>>537 3.xを覚えて2.xのライブラリを3.xに移植する。
545 :
デフォルトの名無しさん:2008/09/12(金) 04:19:39
jython 2.5 a3 release
前にpythonでjsonするためのlibrary検索したらいくつか乱立してた
今はメインはこれって統合されてるの?
simplejsonが2.6/3.0に入るからこれかな
win32com.clientを使用して、IEの操作を行いたいのですが、
ボタンをクリックさせた後、次のページのHTMLを取得する場合
読み込み待機(ieWait)に入るまでの間に
ie.ReadyStateが4に切り替わってくれない為に
python上では読み込みが完了したと処理してしまい
前に表示していたページのHTMLを表示してしまいます。
皆さんならどうするか、回避方法を教えていただけないでしょうか?
ソース >>
http://kissho.xii.jp/1/src/1jyou48304.py.html よろしくお願いします。
Jython本を読むと全てが解決するよ。
>>548 ie.ReadyState == 4 の直後に数秒wait入れてみるとか
直後にはsleep()あるし(whileの)直前だよね?
doc.all.btnG.click()しても
ブラウザが遷移するのは非同期なのが原因なんだけど
使い捨てツールならそんなんでいいと思う。
document.readyStateを見てみたら?
ie.Busy
554 :
548:2008/09/13(土) 15:33:50
>>550-553 助かります。
while ie.ReadyState != 4 or ie.Busy: time.sleep(0.5)
で簡単に解決出来ました!
ありがとうございました。
また行き詰った時はお願いします。
やだ
556 :
デフォルトの名無しさん:2008/09/13(土) 20:40:25
やだ
おしお
つつみ
あかり
>>560 そういうのは無視していたほうがいいよ。
イライラするより、コーディングしたほうが有意義。
前からそのお方はずっとそういうスタンスだから、
ここで書いて本人が目にしたとしても変えないよ。
その人の名前がメール本文に入ってたらゴミ箱行くようにするとかで
解決するんじゃないの、目にしたくなければさ。
>>560 どの言語のコミュにもいるよ、そういう人。
>>560 本来のMLの目的通りお前がいい回答をすればいいじゃないか
>>562 とあるマイナー言語のMLには、自著の宣伝と宗教話しか流さない人がいるよ。
長老らしく、誰も文句言えないらしい。
そーいやPythonの開発者サイド代表的な立ち位置で
コメントしてたりするんだけど具体的に何を作ったのかさっぱりわからんな
何もないでしょ。最初からエラソーな顔してるだけじゃね?
お笑い芸人みたいなもんだからな。技術者と言うよりは。
まだ良い方だって。
イケメンでもなければハッカーでもないということですね、分かります。
570 :
デフォルトの名無しさん:2008/09/14(日) 14:54:17
Pythonは簡単にネットワーク関係のコードをかけると思います。
boostを使うと、C++に埋め込めますか?
コンパイルすると、一つのEXEにファイルになりますか?
EXEの内部にスクリプトに必要なファイルが埋め込んであるだけではないですよね?
571 :
デフォルトの名無しさん:2008/09/14(日) 15:07:48
あとPythonはコンパイルしてEXE出来ますか? IronPython は作れるらしいですが、こっちの方が性能上なんですか?
572 :
デフォルトの名無しさん:2008/09/14(日) 15:16:25
もちつけ
/\⌒ヽペッタン
/ /⌒)ノ ペッタン
∧_∧ \ (( ∧_∧
(; ´Д`))' ))(・∀・ ;)
/ ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O ノ ) ̄ ̄ ̄()__ )
)_)_) (;;;;;;;;;;;;;;;;)(_(
まずは、何がしたいのか、がわからないと、アドバイスのしようがない。
python3.0のリリース日が10月1日から10月15日に変わったんだな
正直もうちょっと遅くてもいい
それとも3.1くらいから乗り換えるか…
printが関数になるとか。文のままがよかったなあ
Python3.0がリリースされると同時に、
俺の会社ではRubyに乗り換えることが決定的になった。
Rubyのが仕様変更安定してるからなあ。
print文の事はPython Regretsにもあったじゃん
579 :
デフォルトの名無しさん:2008/09/15(月) 12:44:53
Pythonが最強だろ マイクロソフト (.NET版) もC++言語 (boost版) でも開発してるし。
Java実装のものが常に新しいRubyが一番いいと思いますけどね。
581 :
デフォルトの名無しさん:2008/09/15(月) 12:48:35
ところでPythonのVMを理解するのに参考になる資料をしってる方いませんかね
python.org
>>577 英断だと思う。明らかに今回のPython刷新は
意味が不明な点が多すぎる。
585 :
デフォルトの名無しさん:2008/09/15(月) 16:58:45
べつに3にいこうしなければいいじゃん
>>577 ていうかPythonを何に使ってたのか気になる。
>>577 おーやっぱあなたの会社もそうしますか。
Rubyの勉強会に行ってこいとか上司に言われるようになりました。
影舞に代表されるようなすぐれたBTSなどもありますしね。
そんでRuby2.0へ移行するときにまたpythonへ
>>587を脳内で再生すると
どうしても影舞以降棒読みになる
この流れ自作自演なの?
*具体的に*気に入らないとこを語れ
pythonよりRubyが優れている事が実証されたな
594 :
593:2008/09/15(月) 17:16:14
誤爆
ダメです。
そんな返答は許可しません。
ていうかこの流れで誰が得すんの?
Pythonは色々なところをRubyから
パクっていったよなあ
それは皮肉なのかボケなのか事実の指摘なのか判別できないお
これが自作自演Rubyユーザーの粘着ってやつか
どうせ4.0になったらまたがらりと変わるんでしょ。
とPHPみたいなことを言ってみる。
>>600 2.0が出たのが2000年だよ?
Pythonは普通のバージョンアップは下位互換性を大切にしてる。popenがいっぱいあったりするのはそのせい。
3.0は、滅多に無い下位互換性を切ってリフレッシュするメジャーバージョンアップ。
しかも、2.6と3.0両方で動くコードが書けたり、2.7と3.1両方で動くコードが書けるように計画していたり、
バージョンアップがしやすいようにちゃんと考えられてる。
言語の安定性は、 Python>Perl>>Ruby,PHP
つーか公式に仕様を検討する場がありPEPという形で文書化されているPythonと
Matzが思いつきでコードをいじり倒してrailsの互換性が平気で
無くなったりするRubyを比べられても、ネタとしか思えんのだが
まあネタなんだろうな
603 :
デフォルトの名無しさん:2008/09/15(月) 18:27:40
サーバー用途ではなくオフラインで使うならHSPかPythonとおみうよ
安定性はPHP>Rubyだと思うけど。
PHPがRubyと同列なんてあんまりだ。
やはりRubyが最強なようだ
608 :
606:2008/09/15(月) 20:20:11
PythonもいいけどRubyもまあいいよね、
イテレータについても早期に実装されたりしているし
2系と3系ってそんなに違うのか。
>>607 コードコンバータ周りの説明が何言ってるのかわからん
>>607 イケメンハッカーって、このひとの事ですか?
>>611 Nと間違えるなよ。
この人は米国に赴いてきちんとGuidoと会話して
話聞いたりしっかりしてんだぞ。
614 :
612:2008/09/15(月) 22:39:26
西尾さんすっげいい人だしちょーかっこいいから。残念。
田中さんはすごい人だ
2.6はもうすぐなの?
619 :
デフォルトの名無しさん:2008/09/16(火) 10:27:34
pyublasをどこでもいいから公式libraryの一部としてとりこんでほしい
今のままじゃ安心して使えない
ctypesの逆ってできるのでしょうか?
つまりpythonをcから呼びたいのです
622 :
621:2008/09/16(火) 17:31:18
623 :
621:2008/09/16(火) 17:50:31
よく読んでみたらpythonの関数をdllにするんじゃなくて
あくまでpythonの中でCの関数にうめこめるだけぽい
624 :
デフォルトの名無しさん:2008/09/17(水) 08:57:32
Python フィトン
今まで3年間pythonを使い続けたが、
rubyの余りの良さにびっくりし、改宗することにしました。
Rubyはめちゃめちゃつかいやすいよなー
使う側に立って開発されている感じ。
合う合わないはあると思う
どっちの言語にもファンはいるが、両方好きな人はそんなに多くないとの噂
629 :
626:2008/09/17(水) 10:29:53
おれも使うのやめようかな
べつにどっちの宗派とか全然興味ないんだけど、
ユーザはpythonのほうが凄く多いよね
Python使いにはスルー力が必要
あ、俺626なんだけど、
>>629みたいな奴が沸くってことは
言語キチガイが発生してるってだけのことか。時間無駄にした
改宗って宗教かよ
ごめ、rubyのが多いな
635 :
デフォルトの名無しさん:2008/09/17(水) 17:17:48
インポートされるファイルを書き込み権限のないディスクに置きたいのですが、.pycファイルを作ろうとしてエラーが出てしまいます。
pycファイルを作らないようなオプションはないでしょうか?
pycをあらかじめ作って置いとくのがいいんだろうな
639 :
635:2008/09/17(水) 19:12:20
>>636 分かりました、Rubyを使う様にしたいと思います。
どうしても中間ファイル pycが作られてしまうのに耐えられません。
ありがとうございました。
/塩\
相変わらず自演Ruby厨が沸くな
lispやhaskellのスレにはなぜか沸かない不思議
オレはこの際Ocamlやるよ。
誰も使ってない言語の方がクールだろ。
どうせPythonが分からなかった池沼だろ。
きっと3日後にはRubyスレに同じこと書いてるよw
初心者です。
MacOSでの開発を実際に行われてる方っていますか?
日本語が問題なくソース内に打ち込めて(ことえりを使って入力できる、という意味)、使えるものといえば
Xcode及びEmacs(オリジナル及びCarbon版どれでも)以外ないのでしょうか..
wxPython実装のものなどを使ってみたりしましたが、
どうもうまく日本語入力できなかったりするんですよね。
PyScripterのようなお気軽なものってないんですかね?
Macでの開発環境スレとかで書くべき話題かもしれません。
Pythonまったく関係ねー
無いのでRuby使いましょう
648 :
646:2008/09/17(水) 22:51:41
>>645 お前もうPython使わなくていいよ、迷惑だからー
こういう出来損ない及び空気読めない奴が一番いらないよな
>>645のような。こういった質問はこのスレッドでは一切認めません。
Rubyに嫉妬されてるPythonってやっぱ凄いの!?
Rubyから色々と機能を参考にしながら
実装していったから結構やれること多いよ
LLの序列は、
Ruby>=Perl>>>Python>=PHP
こんな感じかな。
webに限定すると
Ruby>>PHP>>Perl>>>>>>>Python
になるな。Pythonは使いづらい点がある
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
Rubyにはプログラミング言語以上の価値があると思う [WebProg]
あ
なんか荒らしてるの一人な気がしてきた。
みんなで645の質問に答えよう!
>>645 じゃ俺から。つ TextWrangler
そのうち見えなくなるさ。
空気のような存在になるよ。
この板もID表示だったら良いのになと思うことが、1年に3回くらいある。
>>653 Rubyすごいって言いにきたのかPythonの不満な点を指摘しにきたのかどっちなの
アホにはかかわらない方がいいよ。ほっとくのが1番。
>>660 後者に決まってるだろう
これだからPython厨は困る
アンチは具体的に文句を言えよ。それができないなら単なる荒らし
self地獄でもインデントでもlambdaでもなんでもいいから
664 :
デフォルトの名無しさん:2008/09/18(木) 01:25:06
叩くと増えるレスですね
アンチ専用スレは今日も平和だ
普通に無視してればいんじゃね
相手は一人なんだし。
コードブロックにブレースを採用しない
パイソンは終わった言語です
>663
アンチじゃなくて参考に聞きたいんだけど
self減らすテクニックとかってあるの?
pythonについて議論してるところでrubyを宣伝するのは、matzを筆頭にruby厨の得意技だから
無視するしかない。
>>668 エディタの機能を使ってselfを簡単に入力できるようにするしかないと思う。
ていうかselfの何が嫌なの?
俺はselfなくなったらpython捨てる
みんなよほどキチガイ観察が好きなんだな(www
selfじゃなくて1文字でs、oみたいにするとか
オレが第一引数!
やはりRubyじゃないとこの先のLL界隈は
明るい展望が見えてこない。
iを使おうぜ、iをさ。
iPythonみたいな。流行りそうだろ?
と、iRubyのがよさそうだな、流行りそうだろ?
IPythonならあるぞよ
ruby厨ねえ
ひょっとしてc++をやたら批判しにくる連中と同じなのかい
Rubyだったら$とかじゃないかなあ。$Ruby。
RoRとか金になりそうだけど、いろいろハマって精神壊しそう、みたいな。
どうよ$Ruby。流行りそうだろ?
そうやっていじるからますますこのスレに住み着くんだってば
Rubyで実装されたPython処理系とか無いのかな
バカは相手にしなきゃいいのに…
pythonよりRubyのほうが
使いやすいのはわかりきってること…
>>669 PythonのMLに来てるのを見かけた時は唖然としたわ
686 :
デフォルトの名無しさん:2008/09/18(木) 14:29:32
Pythonの問題かよくわからないのですが,質問させてください.
下のように端末幅より長い文字列をcursesで出力するとき,
1個目のaddstrは大丈夫ですが,2個目のaddstrでは文字化けします.
なぜこのようなことになってしまうのでしょうか?
文字化けしないようにするにはどうすればいいでしょうか?
普段使ってる端末は ck/cygwin/screen/WinXP ですが,
ck/cygwin で Linux に ssh した先の screen 上でも化けました.
screen なしで bash 上で実行しても化けました.
ただし,screen 上と bash 上では化け方が違ってました.
#!/usr/bin/python
# -*- coding: sjis -*-
import curses, nkf, time
s = "ソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソソ\n"
def main(scr):
scr.scrollok(1)
scr.immedok(1)
scr.addstr(nkf.nkf("-e", s))
scr.addstr(nkf.nkf("-e", " " + s))
time.sleep(3)
curses.wrapper(main)
>>680 オレの知り合いがRails案件に手を出してマジで鬱になってたよ。
要求通りのアプリを組むのは簡単だったみたいだが、パフォーマンス問題があって。
最後は発注元に訴えられて裁判沙汰になったらしい。
そして開発してたやつらはほとんど鬱になったそうだ。
>>687 あんな罠言語に手を出すから。
なんで刑務所でRuby教えるんだろ?
刑務所だからだろう?
いやRubyだからだよ。
>>687 はネタじゃねえな。
Railsってフレームワークのはずなのに
互換性をユーザが考えなくてはならない、
中身を知らないと駄目とかそういうレベルの
どうしようもない代物なのになぜか日本で流行ってるんだよな。
バージョンアップが早すぎて互換性が無くなるのはしょうがないとか
そういう議論で切り返されたりするわけだけど、
その場合同一のインタフェースを使い続けるんじゃなくて
別の物を定義してユーザにどちらか選ばせるとか
できないのかなとか疑問に思う。
Rails案件会社内で幾人かの人たちが携わってるけど、
最初は楽だ楽だと言ってたが、最近は「勉強不足で自分自身の存在疑う」
とまで言い始めた。いつに成ればRails or Ruby の拡張及び変更は
落ち着くのだろう。
Rubyアンチスレがあるんだからそっちでやってくれないかな
ここはPythonの実装に関する議論を繰り広げるためのスレッドだ。
初心者的な書込み及びステートメントに関する疑問は
別スレッドでどうぞ
>>691 >Railsってフレームワークのはずなのに
RailsもRubyも言語じゃないよ宗教だよ
Pythonは言語だけど
気狂いになりたい人 => Ruby
普通でいたい人 => Python
粘着Ruby厨 => 死に神
ということでFA?
他言語を貶す必要はない
と、死に神が言っています
698 :
デフォルトの名無しさん:2008/09/18(木) 22:36:54
python 2.6 rc2 release
ここのRuby厨はPythonに駆逐されそうだから荒らしにきてるのね。
700 :
デフォルトの名無しさん:2008/09/19(金) 00:07:14
>>699 そうだろうね。
ちょうどmultiprocessingの話題が出たころから始まってるwww
それは自意識過剰というもの。
Rails案件で気が狂った厨房にはすべてが敵に見えるんだよ。
だから反応するな話題に出すなボケ
locale.setlocale(locale.LC_ALL, "") してみ
687,691は気狂いRuby厨用のテンプレとして末代まで祭りましょう。
pythonはこのままいくと高速化されたJavascriptに置き変わるかもしれないそうです。
javascript って内包表記のときに文字列リテラルとか
置かないといけないんじゃなかったっけ?あれが汚いなぁと思った。
あと、いつまでもヴァージョン上がらないし
Booにはちょっと興味がある
_ _
/::::::;ゝ-──- 、._/::::::ヽ
ヾ-"´ \::::::| r ‐、r ‐、r ‐、r ‐、
/ _ Perl _ ヾノ .|~ ̄ ̄ ̄ ̄ ̄| | | ! ,,, i ̄
/ /・::::ヽ /・::::ヽ ヽ .| 潰す リスト | ,,,. i ,,,,. ! ,,. ト _,ノ
| 丶:::::ノ ▼ ヽ:::::ノ | | ───── ヽ_,人_,.人__ノ ──
l 、、、 (_人_) 、、、 l ..| ・C←(潰した)
丶 ヽノ / .|─────────────
丶、 / ....| ・ ASP←(叩き潰した)
.. |─────────────
| ・ PHP ←(特に念入りに潰した)
|─────────────
| ・ Ruby ←(みんなの期待に答えて潰した)
|─────────────
| ・ Tomcat ←(最後の最後に叩き潰した)
|─────────────
指定したファイルのパーミッションを調べたいんだけどどうすればいいの?
import os
>>712 オレが調べてやるよ。
一件1万でどうだ?
自己解決しました
自己発電しました
もう質問するときはコテでもつけたほうがいいんだろうか・・・・・・
イケメンハッカーが温泉でプログラミング言語をなにかにたとえてネットイナゴを集めました。
719 :
デフォルトの名無しさん:2008/09/21(日) 20:59:54
test
720 :
デフォルトの名無しさん:2008/09/21(日) 21:01:16
Python には関数プログラミングの機能が多く入り込んでいます。でも末尾再帰の最適化
は導入されていません。末尾再帰の最適化自体は、コンパイラの最適化のテクニックであ
り、既存のコードに殆ど影響を与えることなく、python に導入可能でしょう。にもかか
らわず、なぜ現在の python には末尾再帰の最適化が導入されていないのでしょうか?
私は、末尾再帰は goto と同様に避けるべきだと Guido が判断しているのだと推測しま
す。末尾再帰のテクニックは参照透明性を保つテクニックです。でも副作用を使いまくり
な python では参照透明な関数を追求する意味はありません。ならば不必要にコードを分
かり難くする末尾再帰は goto と同様に避けるべきだと判断しているのだと推測します。
皆様は どのように考えますでしょうか。
[Python-Dev] Proper tail recursion から Guido の考えを拾ってみる。
なにこの自演くさい展開?
普通に一人で話を進めてるだけでは・・・
スレタイらしい流れだしいいじゃないか
今、末尾再帰が導入されたとして積極的に使おうと思うやつがどれだけいるのか分からんが、
参照透明なコードを書こうとするのはコードの易化にも繋がるし、悪いことだとは思えない。
末尾再帰ってニュースで興味を持つやつだっているだろうし、実装がつらくないなら入れて欲しい。
避けるべきなのは goto、そして副作用だと思う。
アローで完全に無くせとか言い出すのはやめて欲しいが。
・LISP信者まじきもい
・emacsを使ってる奴は須らくキチガイ
と思ってて、西尾何とかのブログをみたんですが、
pythonを使うにはキチガイ染みた
LISPを理解しないと駄目なんでしょうか?
python使ってるとああいう変な人になっちゃうんでしょうか?
西尾という人については良く知らないけど、
経験的にemacsマンセーな人はほぼキチガイなので
正直戸惑います。
すぐマンセーとか信者とか認定する人の方が基地外率は高かったように経験しています
末尾再帰はあったらあったで便利だけど、切実に必要だとは思わない
末尾再帰を使ったコードは見づらい
という考えの人が多いんだろうね。個人的にはループでできることはループで
やればいいと思う。これまでに蓄積されているアルゴリズムのほとんどはループ
ベースで書かれているから流用しやすいし。
>>726 末尾再帰を最適化する事と参照透過は別の問題だお。
Scheme処理系はは末尾再帰の最適化をするけど参照透過じゃない。
(define x 10)
(define (f a) (set! x "Ref Trans") a)
x ; => 10
(f "dummy")
x ; => "Ref Trans"
731 :
デフォルトの名無しさん:2008/09/22(月) 08:56:08
Python の yield と Ruby の yield はどうちがうのですか?
それを知ってどうする。暗黒面でもかぶるのか。
>>731 見た目の上での使い方は似たようなもの。
どう違うかは、それぞれの言語をきっちり理解すればわかる。
ここで説明するのは難しい。
RubyがPythonのyieldをぱくったというのが歴史的事実。
PEP 255 が Created: 18-May-2001 なんですが、
どうやったらそれを Ruby がパクれるんですか?
Rubyにいつからyieldがあったかを示せばそれで話は終わるが
それだけじゃ情報が足りん!
Rubyの場合はCLU(1974年開発)由来
少なくとも『オブジェクト指向スクリプト言語 Ruby』出版時にはあった
1999年出版
Ruby には詳しいんですね
Python厨とRuby厨が仲直りするスレってなくなったのか?
pythonを勉強したときに得られるメリットを全部教えて。
自分が知ってるのは、open officeのマクロを書ける。
グーグルの公式社内言語
pygameとかいうものがあるらしい
教育用に向いてる?
こんくらい。
Ruby厨はPythonをたたく前に,Rails案件で生産されるメンヘラをなんとかしろよ。
>>741 2番目、おまえには全くメリットじゃないと思うがw
pythonでCGIゲーム作れるの?
作れます
>>741 なんかどれもこれも違和感あるな
組み込みスクリプトとしては、多分Pythonが一番使われてるのは
3Dグラフィックスの分野
俺的には以下のような点が気に入っているが、
別にオンリーワン的なものじゃない
・比較的まともなUnicodeサポート
・インタプリタが使いやすい(特にipythonを利用する場合)
・インタプリタ言語のなかでは比較的高速
・標準/外部ライブラリセットの品揃えがわりと豊富
・C/C++との連携がわりと容易で、boost.pythonのようなものもあり、
Windowsではexeも生成できる
・ソースコードが比較的擬似コードに近く、読みやすい
・マルチパラダイム
・モジュールシステムが比較的使いやすく便利
・Rubyじゃない
・Perlじゃない
・PHPじゃない
・正規表現がオプション
・1行野郎できない
・そもそもスクリプトで大規模なものを書かない
・よって使い道がない
今のperlって、日本語使おうとすると
単にimport reするよりダラダラ呪文を書く必要があるような気がするんだが
>>749 なにを言っているんだ、Perl界の貴公子miyagawaですら正規表現大好きっ子なんだぞ。
正規表現こそ正義だ!
HTMLもXMLも正規表現を使ってパースしろ!!
>>751 いっそチューリング完全な正規表現エンジン組み込んで
Perl言語も正規表現でパースすればよくね?(w
一行野郎を召喚しようとしているスレはこちらですか?
>746
読みやすいの一環とも言えるけど
変な暗黙動作(perl の存在しない変数が読めるとか)がない
(→スッキリ明快、バグ少なくしやすい)
ってのが重要かな
>747
一瞬納得しかけたw
フラッシュメモリみたいなポータブル環境でPython使おうと目論んでるんだけど、
IDLE起動するバッチはどう書けばいいのかな?
フォルダ構造は、Fにバッチ、F直下にpython25。
うわぁ… これはひどい
758 :
756:2008/09/23(火) 15:01:32
は?
760 :
デフォルトの名無しさん:2008/09/23(火) 19:45:31
761 :
デフォルトの名無しさん:2008/09/23(火) 20:08:43
紹介してもらっておいてすまないんだけど、これじゃ出来んかった。
Python起動→IDLE実行の流れで行きたいんだけどね。
よくわからんが
pythonインタプリタから実行したいんなら
import idlelib.PyShell
idlelib.PyShell.main()
とかでダメか?
Tk入れてないとかいうオチじゃないだろうな
つまり、使うパソコンでは環境変数が設定されてないんだ。
その環境で、IDLEを一発で起動させる策を考えてる。
設定すればいいだろ
>>762 そのコードをpythonwのショートカットに放り込むのは出来た。
もうちょっとスマートにいけないものかと。
Fwwwドwwwラwwwイwwwブwww
F:\python25\pythonw.exe -m idlelib.idle
>>768 勝手に自演すなwww
ID表示って大切なんだなww
>>769 d。
これでいいのね。
start Python25/pythonw.exe -m idlelib.idle
いやそれちがう
できたかな?
うお、角電池入った。
dクス。
ものすごい粘着がいるな。
ctypesを使ってSusieプラグインを動かそうとしてます。
GetPluginInfo, IsSupported, GetPictureInfoに関しては
最低限使いたい部分の利用が出来ることを確認したんですが、
GetPictureで実際にBITMAPデータを取って来るところで詰まってしまいました。
やりたいことは要するにポインタが指しているアドレスにあるデータを
構造体や配列にキャストしたいっていうことなんですけど、
どうやればよいんでしょう?
↓現時点でのソースコードです。
http://www-2ch.net:8080/up/download/1222188052755856.MLJkF6
規制されてなかった!
PBITMAPINFO = pointer(BITMAPINFO)
pbmpinfo = PBITMAPINFO()
byref(pbmpinfo)
GetPicture で取得できるのは HLOCAL のハンドルなんで
LocalLock, LocalUnlockつかってバイト列にアクセスする
bytearray = c_uint8 * (640 * 480 * 3) # 画像のサイズ
bytearray.from_address(bmpdata)
>>782-784 ありがとうございます。
ただ、
>>782 のコードだとPBITMAPINFO = pointer(BITMAPINFO)でエラーが起きます。(python 2.5.2)
一応下のようにすると動くことは動くのですが、同じファイルを処理しているのにbiSizeとbiHeightの値が毎回異なります。
なので、妙なところを見ているのかも知れません。
bmpdataのほうも先頭20個を表示してみたら毎回結果が異なります。
pbmpinfo = pointer(BITMAPINFO())
bmpdata = c_void_p()
err = self.dll.GetPicture(filename, 0, 0, byref(pbmpinfo), byref(bmpdata), 0, 0)
bmpinfo = pbmpinfo.contents
print bmpinfo.bmiHeader.biSize
print bmpinfo.bmiHeader.biWidth
print bmpinfo.bmiHeader.biHeight
pinfo = self.getPictureInfo(filename)
bytearray = c_uint8 * int(pinfo.width * pinfo.height * pinfo.color / 8) # 画像のサイズ
bdata = bytearray.from_address(bmpdata.value)
print bdata[0:20]
PBITMAPINFO = POINTER(BITMAPINFO)
pBitmapInfo = PBITMAPINFO()
でも問題はこっちより
>>783が言ってくれてることだと思うよ
そのコードだとハンドルをポインタとして扱ってしまっているように見える
ハンドルはファイルディスクリプタのようなもので単なる整数
>>786 ポインタだと思ってましたけど、違うんですね。
LocalLockとかを使う方法を試してみます。
788 :
786:2008/09/24(水) 07:37:22
PBITMAPINFO = POINTER(BITMAPINFO)
pBitmapInfo = PBITMAPINFO()
でも問題はこっちより
>>783が言ってくれてることだと思うよ
そのコードだとハンドルをポインタとして扱ってしまっているように見える
ハンドルはファイルディスクリプタのようなもので単なる整数
これ次からテンプレに入れる
790 :
786:2008/09/24(水) 10:25:04
ありがとうございます
以下のようなコードでbiWidth, biHeightが正しく読み込めることが確認できました。
これでなんとかなりそうです。
windll.kernel32.LocalLock.argtypes = [ c_void_p ]
windll.kernel32.LocalLock.restypes = c_void_p
windll.kernel32.LocalUnlock.argtypes = [ c_void_p ]
windll.kernel32.LocalUnlock.restypes = c_byte
pbmpinfo = c_void_p()
pbmpdata = c_void_p()
err = self.dll.GetPicture(filename, 0, 0, byref(pbmpinfo), byref(pbmpdata), 0, 0)
pdata = windll.kernel32.LocalLock(pbmpinfo)
bmpinfo = BITMAPINFO.from_address(pdata)
print bmpinfo.bmiHeader.biSize
print bmpinfo.bmiHeader.biWidth
print bmpinfo.bmiHeader.biHeight
windll.kernel32.LocalUnlock(pbmpinfo)
LocalSizeでメモリブロックのバイト数が取得できる
あと、LocalFreeでメモリ解放するのも忘れずに
793 :
791:2008/09/24(水) 19:18:52
LocalAlloc っていつまで使えるんだろうな…
バイナリもじれつから拡張子を取得するにはどうしたら良いんでしょうか?
適当にUnicode文字列に直してos.path.splitext()でいいんじゃない
たぶんfileコマンドとmime.typesの複合技みたいなことじゃない?
prime = [2]
num = 1
root = 1
while 1:
num += 2
root += 1
while num > root * root:
root += 1
root -= 1
for p in prime:
if num % p == 0:
break
elif p > root:
prime.append(num)
print num
break
誤爆……
dosでこれができるけどshだと出来ないとか、
無意味に両方使いこなそうとしてる馬鹿が多いから、
Pythonを職場に持ち込みたいんだけどどうしたらいいかな?
持ち込めばいいよ
>>801 Pythonはシェルやコマンドインタプリタの代用にはならないよ
っIPython
両方使いこなすのはいいことだろ。
文句くらい別にいいじゃん、使いこなせているなら。
まぁ、文面からすると使いこなせていないんだろうけどな。
cygwin 使えや
おいおい、VIP発かよ…
810 :
793:2008/09/27(土) 23:26:41
PILのImagePlugin化ができました。
Susie.pyは
from PIL import Image
import Susie
Susie.regist_to_PIL('ifjp2.spi', "JPEG2000", [".jp2"])
みたいにすることで Image.open('test.jp2') でtest.jp2が読み込めます。
SusieImagePlugin.pyにはSusie.regist_to_PILを使いたいspiの分だけ書いておけば
from PIL import Imageするだけで済むようになります。
(場合によっては Image,init() が必要かも)
http://park7.wakwak.com/~blackbox/etc/Susie.zip
乙
>>810 一発ネタじゃないんだし、zipへの直リンじゃなく
up用のサイト持ったほうがいいんじゃないか?
デザインとか無視で
>>810がそのまま載ってるだけのサイトでいいから
Windows環境でwxPythonのwx.FileDialogからファイルパスを
取得してそれをPythonのfileオブジェクトでテキストファイルとして
出力したいのですが、ファイルパスにエスケープシーケンスと
同じ文字並びが出ると正しいパスになりません。文字列変数に
格納した文字列のエスケープシーケンスを無効にする方法は
ありませんか。
ご教示お願いします。
>>813 移動中に携帯から見たんでそんなこと言われても知らね
>>814 wx.FileDialogが返すファイル名ってUnicodeじゃなかったっけ?
Pythonはファイル名がunicode文字列ならwfopen()を使う。
もしcp932のファイル名が帰ってくるなら、filename.decode('cp932') とやってUnicodeにしてから
open()すればいい。
>>814 俺の環境だとその問題は起きないんだが(勘違いならごめん)
WindowsXP SP2
Python2.5.2
wxPython2.8.8.1(unicode)
dlg = wx.FileDialog(self, 'Choose a file', '.', '', '*.*', wx.OPEN)
try:
if dlg.ShowModal() == wx.ID_OK:
filename = dlg.GetPath()
dst = open(filename+'.txt', "wb")
dst.write(filename+'\n')
dst.write(str(type(filename))+'\n') # <type 'unicode'>
dst.close()
finally:
dlg.Destroy()
ファイルパスの中の\を全部/に置換すればいい
>>819 "表" が、ゴミ1バイトと/になるんですね。わかります。
ちゃんとunicodeで置換したらそうはならないよ
>>803 emacsのpython.el
で一度import hogeで読み込んだhoge.so
を解放してもう一度読み込み直しが簡単にできない( hoge.so がコンパイルされた)
これできればpython.elの端末に住めるのに
reload(hoge)
824 :
814:2008/09/29(月) 18:01:07
当方の勘違いで全く別のバグでした。問題解決しました。
御回答いただいた方々にお詫びとともに感謝
申し上げます。
別件をwxWidgetsスレで尋ねたのですが、こちらのスレに
詳しい方が多そうなのでもう1つ。
wxWidgetsのDLLをUPX圧縮した状態でwxを使うツールを
2重起動するとOS毎固まる症状が出ています。
調べた限りではwxのどのDLL,pydを圧縮しても
同じ症状が出るようです。
OS Win98
WxWidgets 2.8(wxPython2.8.7.1 本家のWin版)
UPX 2.0.3
AVSP(1.3.6 python2.4 wx2.6)ではUPX圧縮してあっても
多重起動できているのでバージョンの問題かも
しれませんが、ツールを一纏めにして配布する
予定なので出来るだけ圧縮して使用したいのです。
圧縮の目的はサイズ縮小よりも起動時間の短縮です。
検索したところUPXのパラメータをいじるとうまくいったと
あったので-1と-bestを試したのですがダメでした。
AVPSは-bestで圧縮しているようです。
御教示よろしくお願いします。
よく分からんがWin98のせいだろ
>>824 よほど遅いメディアから起動するのでなければ、UPXで圧縮しても
起動時間は短くならないと思うが。
あとUPXとかで圧縮すると、メモリ消費量が増えるよ。
特に多重起動した場合はインスタンスの数だけ消費するから酷い。
古いpythonしかない環境でPIL動かしたい
普通にsetupするとimport Imageでこける
いくつか昔のPILいれれば大丈夫なんでしょうか?
古いpythonって具体的にバージョンいくつ?
「こける」ってことは例外すらも出ないってこと?
>>827 ライブラリはPythonのバージョンに当然依存するよ
特にPILのようにCで書かれたライブラリなら、厳密にバイナリ互換の
バージョンでないと動かない
マイナーバージョンの違いぐらいなら普通は大丈夫だが
そうでなければアウト
バイナリ互換でなくともソース互換であるのなら、
自分でmakeすれば大丈夫だが
wxpythonでキーイベントを受け取って、キーによって処理を分岐させようと思って
いるのですが、やり方がわかりません。
シフトやコントロールキーはWXK_XXXという形で定義されているのでいいんですが、
'a'や'y'といったキーを押されたときにどうやって分岐させればよいでしょうか?
'a'が押されたかどうか判定するのは、
if event.GetKeyCode()==65
で出来ることは出来るんですが、直接アスキーコードで判定するしか方法はない?
rpm --prefix=/home/myname hoge.rpm
でhomeにinstallしようとすると
/var/lib/rpmPackages
にアクセスできません(許可されない操作)
といわてinstallできないのですが
rootにならないでinstallすることはできないのでしょうか?
>>830 if event.GetKeyCode() == ord('A'):
>>832 ありがとうございます!
やっとで解決策が(泣)
絶対アスキーコード(でいいのか?)に変換できる関数があるはずだと
探しても見つからずじまいで…。助かりました!
ctypesで、openGLのプログラム
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
省略
}
をpythonではどう表現したらいいのか分からない。
ttp://d.hatena.ne.jp/m107/20070415 を参考にやって見てるんだけど、glutInitの引数の表現の仕方が謎。
PyOpenGL使えとかそういう話じゃなくて、他のライブラリ使う時も上のような
形は良く出てくるような気がするから後学のためにご教示お願いします。
ためしてないけど
こんな感じでいけないか?
argc = ctypes.c_int(len(sys.argv))
argv = (ctypes.c_char_p * (len(sys.argv) + 1))()
for i, arg in enumerate(sys.argv):
argv[i] = ctypes.c_char_p(arg)
glutInit(ctypes.byref(argc), argv)
836 :
814:2008/09/30(火) 18:37:49
>>825,826
御回答有難うございます。
Py2ExeでExe化したものを配布します。この状態でならば
UPX圧縮すると起動時間が半分くらいになります。
スクリプトとして起動するよりかなり早く起動できています。
Exe化が当問題と関係ない事は確認済みです。
2重起動は必要ないのですが誤って多重起動して
ハングする対策をしたかったのです。
対策がなさそうなので起動用の
入り口プログラムを別に用意します。
>>835 ありがとうございます。
試して見たところ、動きました!
glutのコールバック関数で少しつまづきましたが、すんなり実行できました。
839 :
デフォルトの名無しさん:2008/09/30(火) 22:01:38
まるまるコピーしてみてログインできないのですが
わかる人、教えてください。
import urllib
import httplib2
http = httplib2.Http()
url = '
https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp'
body = {'USERNAME': 'hogehoge', 'PASSWORD': 'hogehoge'}
headers = {'Content-type': 'application/x-www-form-urlencoded'}
response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body))
とりあえずフォームの中身の確認ぐらいしとけ
{'Content-type': 'text/html'}
こう?
あぁぁぁ
さっぱりわからん。
だれかさんぷるくれ〜〜〜。
[('Content-Type', 'text/html')] と予想
違ったらリファレンス見ろ。
845 :
844:2008/10/01(水) 00:47:46
こんな感じ?
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.title = ''
def handle_data(self, data):
self.title = data
parser = MyHTMLParser()
parser.feed(xml)
print parser.title
これなら def handle_data(self, data): self.title += data に直す
847 :
844:2008/10/01(水) 01:18:42
一応、自分のコードも晒します。単純なので、バグはないと信じたいのですが。
class MyHTMLParser(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.__link = ""
self.__data = ""
def handle_data(self, data):
self.__data = data
def handle_endtag(self, tag):
if tag == 'link':
self.__link = self.__data
elif tag == 'title':
print self.__data
print self.__link
print
848 :
844:2008/10/01(水) 01:32:01
>>846 うまく行きました!ありがとうございました。
def handle_data(self, data):
self.__data += data
def handle_endtag(self, tag):
...(略)...
self.__data = "" # この行を追加。
あとはなんか改行が増えたので、あちこち微調整しましたが、基本的にはこれ
で行けました。
しかし文字参照は完全に無視されてしまうのですね。
http://programming-magic.com/?id=173 この辺を使って直す必要があるのかしら。
パーサが文字参照に出会うと handle_charref を呼ぶので
そこに文字参照を解決するコードを書く
ただ基本的にはElementTreeオススメ
import xml.etree.cElementTree as ET
root = ET.fromstring(xml)
print root.find('title').text
850 :
844:2008/10/01(水) 01:39:29
>>849 ありがとうございます。明日試してみます。
python.el
に~/bin/python
を読ませるのってどうするの?
854 :
814:2008/10/01(水) 16:23:25
問題の根本が解決しました。UPXのバージョンを最新にして
圧縮したら上手くいきました。
本家でもWin32PEで新規対応したとはなく、何を
BugFixしたのかも書いてないけれど何かあったようです。
先のレスでも書いたように当方の環境ではUPX圧縮すると
起動が速くなっていますが最近のPCでは速くなりませんか。
スクリプトを単体実行するにはいい方法だと思うのですが、
メモリ消費量が多いとか圧縮の可搬性は書庫化で十分
という意見ばかりで、いい印象を持っている方は少ない
ようですね。
スレ違いで失礼しました。
855 :
デフォルトの名無しさん:2008/10/01(水) 20:27:08
PythonのCGIでCookie操作ってどうすればいいの?
>>855 HTTPヘッダのSet-Cookieに入れる。
取得は環境変数のHTTP_COOKIEを見る。
key not found で例外ですねわかります
859 :
855:2008/10/02(木) 02:14:53
すまんが誰か作ったモジュール公開してくれない?
860 :
デフォルトの名無しさん:2008/10/02(木) 02:15:54
お断りします
7000億のメールってすごいな。
863 :
デフォルトの名無しさん:2008/10/02(木) 11:41:44
Chromeっていいね
pythonってどういう目的のときに使うの?
865 :
デフォルトの名無しさん:2008/10/02(木) 12:17:16
2.6リリース
>>864 Wikipediaでも見てみるがいいよ
Pythonを利用しているソフトや企業が載ってる
個人的にはWindowsでのデフォコンパイラがVC9になったのが
意外とデカい(対応が面倒くさいという意味で)
869 :
デフォルトの名無しさん:2008/10/02(木) 18:39:50
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import Cookie
import os
name = "test"
cookie = os.environ['HTTP_COOKIE']
cookie2 = Cookie.Cookie.decode(cookie)
print 'Content-Type: text/html'
print
if not cookie2:
print 'Set-Cookie: test=' + name + '; expires=' + time.strftime('%a, %d-%b-%Y 23:59:59 GMT') + ';'
print cookie2
クッキー操作ってこれじゃダメなのかな?
870 :
デフォルトの名無しさん:2008/10/02(木) 18:52:40
871 :
デフォルトの名無しさん:2008/10/02(木) 18:55:07
print 'Content-Type: text/html'
print ←ここがおかしい
if not cookie2:
print 'Set-Cookie: test=' + name + '; expires=' + time.strftime('%a, %d-%b-%Y 23:59:59 GMT') + ';'
print cookie2
872 :
デフォルトの名無しさん:2008/10/02(木) 19:06:32
name = "test"
cookie = os.environ['HTTP_COOKIE']
cookie2 = Cookie.Cookie.decode(cookie) ←ここもおかしい
873 :
デフォルトの名無しさん:2008/10/02(木) 21:38:50
2.6 Windowsバイナリも公開されてた。
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import os
import Cookie
Co = Cookie.Cookie()
Co['pytest'] = '123456'
Co['pytest']['expires'] = Cookie._getdate(60*60*20)
Co = str(Co) + ';'
cookie = os.environ['HTTP_COOKIE']
cookie2 = Cookie.SimpleCookie()
cookie2.load(cookie)
print "Content-Type: text/html\n"
print Co
print "<br>"
print cookie2
こうか
効果無し
すまん。もっと良いものつくれ。
877 :
デフォルトの名無しさん:2008/10/03(金) 11:48:47
急に思い出せなくなちゃった。
pythonってCみたく
return a == b ? a : b
のような書き方はないですか?
a if a == b else b
スレ違い
881 :
デフォルトの名無しさん:2008/10/03(金) 13:31:57
3.0のリリース予定が年内になったな
>>879 >Ruby の素直で覚えやすいオブジェクト指向の機能
>Python の豊富なモジュール
なんかわろす
慣れ親しんだ Ruby って書いてくれれば違和感ないんだけどねぇ
もっとも… 扇るほどの話じゃないわな
>>879 昔rubyのライブラリが少なめだったのであったようなもん
今わざわざこれをつかう理由は無い
python2.6
pygameは既に対応モジュール配布されてるけど、
PILはまだだし様子見だな…
2.5, 2.6, 3.0 が共存できればいいんだけど、
winだと関連付けがネックになるなぁ。
>877-878
Pythonの三項演算は宿題スレで嫌われる「条件後付け」だと覚えればいい。
a if pred else b
・a なんです。
・あ、書き忘れましたがそれは pred の時だけです。
・違ったら b にしてください。
どうして普通に pred ? a: bにしなかったのだろうか。頭おかしいとしか思えないwww
return a == b ? a : b
にしろ
return a if a == b else b
にしろ
retrun b
じゃだめなん?
?:が普通だと思う感覚のほうがどうかしている。if elseはガード式の変形みたいなもの。
>>887 lispのスレでそんなの見た気がする。
そういう意味だったのか。
a if pred else b の場合 : 使わないのがしばらく違和感あった
>>889 呼び出し側でaが指してるオブジェクトを触りたいときに困らないかな
return a if a < b else b if b < c else c if c < d else d ...
ゲシュタルト崩壊しそうだ。
return a if a < b else b if b < c else c
これってどっちに解釈されるの?
↓
return (a if a < b else b) if b < c else c
return a if a < b else (b if b < c else c)
>>889 aとbが==ではあっても同一オブジェクトじゃない場合に困るんじゃね?
例えば、
def either(a, b):
return a if a == b else b
x = dict()
y = dict()
either(x, y)['x'] = true
y['y'] = true
とした場合、
return b
の場合と
return a if a == b else b
では最終的なxとyの値が変わってくる。
>>896 a = 1
b = 2
c = 0
print a if a < b else b if b < c else c
print (a if a < b else b) if b < c else c
print a if a < b else (b if b < c else c)
とすると
1
0
1
だから後者みたいだね。
return a if a < b else b if b < c else c if c < d else d
なら
return a if a < b else (b if b < c else (c if c < d else d))
ということですかね
2.6アイコン戻ってるwww
なんでwww
pygameの和訳作業やれよ屑ども
それより標準ライブラリの和訳が必要だ。
いつまでも2.4じゃ困る。
英語を読める人は困らないので和訳しない
英語を読めない人は和訳できない
そして誰も居なくなった…
英語の勉強をしているので和訳する
2.6にしたらIDLEが起動しない…
何故だ
>>905 叩かれるのを覚悟の上とはいい度胸だ。
まぁ自分のスキルアップとだけ認識していれば、これ以上ない機会かもな。
908 :
デフォルトの名無しさん:2008/10/04(土) 21:39:26
2.6にしたらpylonsとGenshiがインストールできねー
Twistedも早く対応してほしいのう
Library Reference、かっこよくなってる。
Kokeshiも。
おまいらこれ入れてる?
# -*- coding:utf-8 -*-
手が勝手に入れてる
Idleが勝手に cp932 いれる。
917 :
913:2008/10/06(月) 09:49:55
すまん、すばらしいブログのエントリ紹介してるのに
コメントよこさない糞なおまえらってなんなの?
>>917 既に英語のWhat's Newを全部読んだからなぁ。
913本人が本気で言ってたら笑える
920 :
デフォルトの名無しさん:2008/10/06(月) 12:47:37
What's Newを全部邦訳したらコメント少しは貰えるんじゃない
Pythonには改行しないprint文は無いんだっけ?
,
すまん。わけわかった。
,で空白がはいるのが嫌な場合はsys.stdout.write
2.6なら↓のような方法も
>>> from __future__ import print_function
>>> print("foo", end="")
>>927 トンクス
3000への移行用にprint関数実装されてたのね。
どうでも良いかも知れんけど、sys.stdout.writeは数値を出力できないな。
__future__タンはひみつしゅぎすぎるとおもう
dirとかhelpとかしてもちっともこたえてくれないの
str.formatが素敵すぎる件
属性や要素へのアクセス出来るのが面白いね
>>> from collections import namedtuple
>>> Person = namedtuple("Person", "name, age")
>>> p = Person(name="hoge", age=18)
>>> "{0.name} {0.age} {l[4]} {d[value]}".format(p, l=range(10), d={"value":20.0})
'hoge 18 4 20.0'
もういっそのことevalにしちゃえと思うけど
def format(s):
return re.sub(r'{(.*?)}', lambda mo: str(eval(mo.group(1))), s)
そうしないのがPythonかな
>929
意味がわカラン
sys.stdout.write("%f\n" % i) で何か問題が?
ファイルに数値をバイナリで出力するにはどうすればよいですか
"name: %s, val: %s" % ['age', 123]
を
"name: %2$s, val: %1$s" % [123, 'age']
のように書くことはできますか。
つまり順番をかえたいということです。
やってみればいいじゃない
むりだからあきらめな
2.6なら
'name: {1}, val: {0}'.format(123, 'age')
>>> "name: %(2)s, val: %(1)s" % {"1":123, "2":'age'}
'name: age, val: 123'
>>> from string import digits
>>> "name: %(1)s, val: %(0)s" % dict(zip(digits, [123, "age"]))
'name: age, val: 123'
>>> class foo(object):
... def __init__(self, *args): self.args = args
... def __getitem__(self, key): return self.args[int(key)]
...
>>> "name: %(1)s, val: %(0)s" % foo(123, 'age')
元の質問には「逆順で書けばいいじゃん」とか
tmplist = ['age', 123]
"..." % (tmplist[1],tmplist[0])
で十分な気がするけどね…
それだったらreversedや[::-1]でもいい
>>941-943 どうもありがとうございます。
しかし % ではできないんですね。
背景を説明すると、まず
msg = {
'M001': "%s: not found.",
'M002': "expected is %s but got %s",
}
のようなメッセージカタログがあって、
print msg['M002'] % (expected, actual)
のようなコードが大量にある中、
ある言語用のカタログではどうしても表示するデータの順番を
いれかえたいという要望がでてきて、それでメッセージカタログの
修正だけでできないかと調査していたところです。
Rubyだと "%2$s %1$s" % ['A','B'] が "B A" になるので、
Pythonでもできるだろうと思って質問しました。
しかし教えていただいた方法はどれも % (arg1, arg2, ...) の部分を
変更する必要があるうえ、"%(2)s %(1)s" や "{2} {1}" とすると
変更する必要のない他のカタログも変更しなきゃいけないので、
ちょっと採用しづらいです。
まず背景から説明してくれたらよかったのだが
class f(object):
def __init__(self, text, indices):
self.text = text
self.indeces = indices
def __mod__(self, other):
return self.text % tuple(other[i] for i in self.indeces)
msg = {
'M001':f("%s %s", [1, 0])
}
print msg['M001'] % ("A", "B");
>>948 __mod__ を定義することで、% 演算子をオーバーライドしているわけですか。
あたまいいですね。
ただ、今はメッセージははすべてテキストファイルに書いており、
それをパースしてカタログを作っているんですね。
だからテキストファイルに f("%s %s", [1, 0]) のようなコードを
単純に埋め込むわけにもいかないんですが、ここまでくれば
なんかもう一工夫でできそうな気がします。
どうもありがとうございました。
shutilって、何かの略なの?
>>949 何がしたいんだ?
f("%s %s", [1, 0])のように書きかえれない。
printを書きかえれない。
どこも変更できないと言ってるようにしか見えないがwww
>950
SHell UTILityじゃないの
python2.6用のpsycopg2ってまだ出てないのかな?
dbutilって、何かの略なの?
RubyでのRakeのようなツールはpythonにありますか。
>>957,958
ありがとうございます。
SCons を見てみたのですが、例が C のコンパイルばかりで、自分でタスクの中身を定義する方法がわかりませんでした。
たとえば *.rst を *.html に変換するのは Makefile だと
.SUFFIXES: .html .rst
.rst.html:
rst2html.py $< > $@
でいいわけですが、同じことをやろうとして SCons のマニュアルを読んだのですが、どこにも書いてないっぽいです。
(書いてあるのかもしれませんが、見つけられませんでした。)
SCons マニュアル:
http://www.scons.org/doc/production/HTML/scons-user.html もし SCons でのやり方をご存知の方がいれば教えてください。
960 :
デフォルトの名無しさん:2008/10/08(水) 20:45:40
pake
>>959 こうかな?
bld = Builder(action = "rst2html.py $SOURCE > $TARGET",
suffix = ".html",
src_suffix = ".rst")
env = Environment(BUILDERS = {"RST2HTML": bld})
env.RST2HTML("test")
まんどくせ
bir()から、__doc__やメソッド除くにはどうしたらいいの?
dir()のことなら
str.startswithとかcallableとか使って除外すればいいんじゃない
inspect.getmembersを使うとか
inspect.getmro
967 :
デフォルトの名無しさん:2008/10/08(水) 23:43:41
属性値が callable で im_self を持っていて、且つ im_self がクラスと一致するならクラスメソッド。
attr = getattr(klass, name)
bool(callable(attr) and hasattr(attr, 'im_self') and attr.im_self == klass)
pygameで作ったウィンドウがとてつもなく重いんだけどどうにかならないの?
うちは平気
pygame.time.wait(delay?)に小さい値を与えて
ビジーループしてるんじゃないかとエスパーしてみる
971 :
デフォルトの名無しさん:2008/10/09(木) 13:23:00
>>961 ありがとうございます。
なんか、ぜんぜん直感的じゃないですね。
これならMakefileのほうがずっと簡単です。残念。
きっとSConsに組み込みのルールを使うだけなら簡単なんでしょうが、
自分でルールを定義することが多いと、あんまり嬉しくなさそうです。
みんなありがとう。dir()でしたww
それか、アトリビュートを追加するときにリストを作るって手もあるかな……。
アトリビュート追加するときに呼び出されるメソッド調べてきます。
__setattr__を使えば出来ましたが、それ以前に__dict__で大丈夫でした……。
お騒がせして申し訳ありませんでした。
今、pythonでwebフレームワーク作ってるよ。
まだO/Rマッパーとかなくてフレームワークと呼ぶには程遠いものだけど、
いつか完成したときには公開してみるよ。
pythonで、ファイルに書き込み権限があるかどうかを調べるライブラリとかありますか。
os.accessでどうだろう
拡張スライス構文がまったくわからない。
[a:b, c:d] とか [a:b, ..., c:d] とか [..., a:b] とかを使った簡単なサンプルをくれ。。。
どうやってもエラーが出てしまって、
拡張スライスの利用方法がわからん。
numpyが使ってる……ということじゃないのかな
>>977 たぶん、世界の歴史が変わるレベルのもの
984 :
デフォルトの名無しさん:2008/10/10(金) 07:01:40
>>975 Python始めて1ヶ月な俺だが支援できる事があったら言ってくれ
>985
自問自答だが Chaco ってのがなかなか有望っぽいみたい
ただし現状の完成度・ドキュメント状況とかを
加味するとまだ matplotlib の方が
現時点では良さげって感じかな?
フレームワークには期待を寄せてみるが、既に優秀なものが揃ってるからな……。
何か特異点をつけないといけないだろうね。
Rail on Rails
990 :
デフォルトの名無しさん:2008/10/11(土) 05:45:20
RoRにしてもTurboGearsもDjangoもPylonsも
GUIで出来た設計ツールがないよね?
なんでウェブアプリフレームワークに設計ツールが必要なんだか…
WebよりIronPythonでSilverlightやろうぜ