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


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

Pythonのお勉強 Part 24



1 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:27:53 ]
Python オフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
FrontPage - Pythonのお勉強
python.rdy.jp/
前スレ
pc11.2ch.net/test/read.cgi/tech/1201073019/l50

◆関連スレッド
Microsoft IronPython 1.0
pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/
2ch検索: [python]
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

◆関連リンク
Python 日本語ドキュメント - Pythonistaのお友達
www.python.jp/doc/release/

Pythonのバイブル的書籍
www.amazon.co.jp/dp/4797341815

その前編
www.amazon.co.jp/dp/4797341815


601 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:51:37 ]
>>596
暇な窓際オッサンがスレを占拠しててウザいからmixiは嫌い

602 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:01:17 ]
>>600
ファイルオブジェクトとして扱える

603 名前:デフォルトの名無しさん [2008/03/11(火) 10:06:10 ]
このスレ的には IronPython もおkって人が多い?
それとも IronPython は異端?

604 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:21:46 ]
>>600
後者のほうは Python3 で使えない (unicodeとfile)

605 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:41:44 ]
>>603
異端かは知らんが
専用スレはあるようだ
pc11.2ch.net/test/read.cgi/tech/1157686822/l50

606 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:57:43 ]
>>603
文法は一緒なんだがライブラリが別物(.NET Fw使うから)なんで
用途的な意味でほとんど別物だと思う、俺が使った感想だと。

607 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:02:04 ]
>>606
.Net・・・ファイアーウォール?


608 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:11:01 ]
つ、つられないぞっ

609 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:42:19 ]
MSのOSでしか使えないスキルというのが、手を出すのをためらう所かな。



610 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:17:00 ]
monoも忘れないであげてください

611 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:54:00 ]
>>606
そういう人にはFePy

612 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:42:08 ]
unicode(file(filename).read())とか書いちゃう奴は入門書を買えない貧乏人か文盲
 
 

 
open()使うかRubyでもやっとけクソ

613 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:46:37 ]
貧乏人バカにすんなよ

614 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:37:05 ]
巷に出回ってる入門書のすべてでunicode()を扱ってるとでも思ってるんだろうか

615 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:37:06 ]
クソ本はクソ人間にも劣る。
codecs.open()を扱っていない入門書など論外である。

616 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:47:51 ]
おミンパイはどうなの?

617 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:03:28 ]
>>616
書いてあるわけないだろうがボケカス氏ね

618 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:33:06 ]
def func1(a,b,c,d):
  中略

関数の呼び出しで第一引数を省略して呼び出すには
どうしたら良いでしょうか?

func1(,"hoge","fuga","piyo")

と書いたら怒られますた。。。

619 名前:618 mailto:sage [2008/03/12(水) 18:39:06 ]
>>> def func1(a,b,c,d):
... pass
...
>>> func1(,"hoge","fuga","piyo")
File "", line 1
func1(,"hoge","fuga","piyo")
^
SyntaxError: unexpected token ','

>>> def func1(a="nyo",b,c,d):
File "", line 1
def func1(a="nyo",b,c,d):
^
SyntaxError: default value must be specified here

はじめの引数だけ省略したいですと… orz



620 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:42:41 ]
>>618
答えがあるのかもしれないけど、
普通は、関数を定義する時に、
必須の引数を前に持ってきて、オプションは後ろ

def func(arg1, arg2, arg3=None, arg4=True):
  return True

こうすると、3と4は省略可能

621 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:44:29 ]
むり
省略は後ろから順

622 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:47:59 ]
それか綺麗じゃないけどその場で適当に何か入れといてから
必要になったときに入れ直したら?
どういうコードが後に続くのかによって何とかなりそうな気もする

623 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:48:23 ]
def func1(a='hoge', b='fuga', c='moge', d='piyo'):
 中略

とやって

func1(b='foo', c='bar', d='baz'):
 中略

と呼ぶ手もなくはないがめんどい

624 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:53:19 ]
>>618
# python 2.5
import functools
func1p = functools.partial(func1, "第一引数の値")
func1p("hoge","fuga","piyo")

625 名前:618 mailto:sage [2008/03/12(水) 19:01:30 ]
>>620-621
now = time.strftime("%Y/%m/%d", time.localtime(time.time()))
def res(name, mail, time=now, body):
  中略

res("デフォルトの名無しさん","sage",,"本文")

ではなくて、res(,,,"本文")
と書けたら便利そうなのですが、前から省略はできない…
でも引数の順を変えるのは嫌かも…諦めるしかない
d

626 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:09:54 ]
>>623
すべての引数にデフォルトの値を割り当てれば
いいのか…

>>> def res(name="デフォルトの名無し",mail="sage",time="2008/03/12",body=""):
... print name,mail,time,body
...
>>> res(body="本文")
デフォルトの名無し sage 2008/03/12 本文

とりあえず解決しますた。
dd

627 名前:デフォルトの名無しさん [2008/03/12(水) 20:11:10 ]
コピペアフィブログの臭いがプンプンだぜ

628 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:04:02 ]
IronPython使ってる人なんていたんか

629 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:14:11 ]
>>> def res(**kwargs):
...  print kwargs['hoge'] if kwargs.has_key('hoge') else None
...  print kwargs['fuga'] if kwargs.has_key('fuga') else 0
...
>>>
>>> res(fuga=100)
None
100
>>> res(hoge='abc')
abc
0
>>>



630 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:22:30 ]
[] if...else...よりはget
更にhas_keyよりはin演算子

631 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:58:37 ]
def res(**kwargs):
  print kwargs.get('hoge', None) if 'hoge' in kwargs
  print kwargs.get('fuga', 0) if 'fuga' in kwargs


632 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:30:45 ]
**kwargs 出す場面じゃあない
暗黒面への入り口

633 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:11:23 ]
肛門臭うぞ

634 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:19:05 ]
鼻エスパー?w

635 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:21:17 ]
かわいそうな能力w

636 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:23:13 ]
import os
print [x for x in os.listdir(u"C:/")]

このやりかたって日本語ファイル名だめなの?

637 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:29:17 ]
\x83等のエスケープの事なら避けられない



638 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:55:29 ]
Python3000でprintが関数になれば出来るのかね。
強引だけど、map(print, os.listdir('.'))みたいな

639 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:03:54 ]
>>636の振った話題に付いて行けない。
このコードだとなにが問題なの?





640 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:10:55 ]
それよりみんなさ、引数がたくさんあるメソッドをオーバーライドしたときってどう対処してる?
たとえばGUIクラスがあったとして

class Window:
 def __init__(self, parent, width, height):
  ...

これを継承するでしょ。で、そのとき独自の引数 piyo を追加したい。その時って

class ExWin(Window):
 def __init__(self, parent, width, hegiht, piyo, *args, **kwargs):
  Window.__init__(self, parent, height, *args, **kwargs)
  ...

みたいに律儀にやってる?
でもこれだと、基底クラスの受け取る引数が一つ増えたときにややこしいことになる
それとも、..., piyo=None, *args, **kwargs)
って、キーワードとして追加?
なんにしても、基底クラスの仕様が変化すると、渡すパラメータの順番が狂ってしまう



641 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:54:37 ]
日本語コーデックの自動判別モジュール探してたんだけど、よく考えたら
この判定コードで十分じゃね?

jp_codecs = ("euc-jp", "sjis", "utf-8")
jp_patterns = "あいうえお…わをん"

def get_jp_codec(s):
 def tryenc(s):
  for i in jp_codecs:
   try:
    u = s.decode(i)
    yield i, u
   except UnicodeDecodeError:
    pass

 for enc, u in tryenc(s):
  if len(set(jp_patterns) & set(u)) > 0:
   return enc
 return None



642 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:01:39 ]
>>641
厳密に言うと、完全ではない。
たとえばEUC-JPとShift_JISは完全に区別することはできなくて、
Shift_JIS なのに s.decode('euc-jp') でエラーにならない場合もある。


643 名前:デフォルトの名無しさん [2008/03/13(木) 13:08:28 ]
全部試してみてエラーが起きないやつを可能性として
全部候補に挙げて,あとはカン,とかどうよ?
nkf なんかはもっとなんか別の統計的手法をつかってるんだっけ?

644 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:12:57 ]
シフトJISの半角カタカナ2文字か、EUC-Jの漢字1文字か、が
全く同じバイト列になるから判別不可能。

645 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 19:51:59 ]
Welcome to NISHIO Hirokazu's homepage!

646 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:52:55 ]
[i for i in globals().keys()]
と打ち込むと "_[2]" ていう変な識別子が定義されてるんだが、なんだこれは。

647 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:11:31 ]
ぐぐったらこんなのがみつかった
aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297
内包表現で使われる一時変数みたいね

>>> def p(x): print x
...
>>> [x for x in range(5) for _ in [p(locals()['_[1]'])]]
[]
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]

# トップレベルのlocals()とglobals()は同じだよね・・・

648 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:21:47 ]
>>> dis.dis(compile("[x for x in range(5)]","","eval"))
  1           0 BUILD_LIST               0
              3 DUP_TOP            
              4 STORE_NAME               0 (_[1])
              7 LOAD_NAME                1 (range)
             10 LOAD_CONST               0 (5)
             13 CALL_FUNCTION            1
             16 GET_ITER           
        >>   17 FOR_ITER                13 (to 33)
             20 STORE_NAME               2 (x)
             23 LOAD_NAME                0 (_[1])
             26 LOAD_NAME                2 (x)
             29 LIST_APPEND        
             30 JUMP_ABSOLUTE           17
        >>   33 DELETE_NAME              0 (_[1])
             36 RETURN_VALUE       

さっぱりわからんが_[1]が使われてるみたいだ

649 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:21:21 ]
IronPythonだと出ない



650 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:14:55 ]
3.0α3でも出なかった

651 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:35:10 ]
>codecs.open()を扱っていない入門書など論外である。

>おミンパイはどうなの?

書いてあるよ。
工作員お勧めのはじパイには書いてないけど。

652 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:39:53 ]
速pyはどうなの?すごいマイナー臭がするけど。

653 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:19:15 ]
初めてのPythonって、オライリーから出てるのが本物?

654 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:20:31 ]
黄色い方が偽者

655 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:30:10 ]
wanthac.blogspot.com/2007/10/python_27.html

656 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:40:40 ]
d.hatena.ne.jp/Cassiopeia/20070602/1180805345

657 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:42:33 ]
osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html
># 日本語の入った文字は、u'....' のように、頭に"u"をつけて、 この文字列がUTF-8で書かれている事を明言します。

大嘘だ罠



658 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:45:03 ]
d.hatena.ne.jp/Cassiopeia/20070604/1180900747

659 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:08:04 ]
>>636
import os
print repr([x for x in os.listdir(u'c:/')]).decode('unicode-escape')



660 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:59:09 ]
工作員お勧めのクソ本のせいで「Pythonは日本語が苦手」という印象が広まってしまっている件。

661 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:48:06 ]
初めて日本語処理を書く人は大抵つまずく、という点では正しい。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:16:36 ]
そこらへんはJAVAやC#に遅れをとっている所だよね
PerlやRubyよりはマシなんだけども

663 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:18:53 ]
>>659
出来ました
激しくありがとうございました

664 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:20:25 ]
PPPの中ではunicode化に関しては一番進んでるよな


665 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:22:09 ]
Java/C#はそんなに優れてるの?

666 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:42:40 ]
特にjavaは秀逸

667 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:46:13 ]
Javaってクラス名や変数名日本語可能?

668 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:10:48 ]
動物が表紙のウンチ本が全部悪いんだぜ

669 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:49:12 ]
フローズンバイナリがよくわかりません。チュートリアルにも
フローズンバイナリに付いて全くといっていいほど情報がないし。。。
なんなの?これ



670 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:00:52 ]
>>669
何が分からんのか分からん。

671 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:19:15 ]
書いたスクリプトの実行時間(0.5秒)のボトルネックがimport文(9割を占める)でした。
importのオーバーヘッドを小さくするtipsなどないでしょうか?(2.4使用)

スクリプトはCGIにしたいと思っているもので、
色々な種類の小さめの処理(各1ファイル)をサクサク実行したいという状況なのです。

672 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:24:55 ]
>>669
サードパーティーモジュールが必要だから
チュートリアルに書いてあるわけがない。

673 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:31:32 ]
>671
まさか関数内で import なんてことないよね?
import はモジュールのトップレベルですべし。



674 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:05:00 ]
ディスクの空き容量が知りたい時は df を popen() して re.search()?
Windowsではどうするの?

675 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:17:29 ]
ctypesでGetDiskFreeSpaceEx呼び出す

676 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:12:45 ]
>>674じゃないけどヒントもらったしせっかくなので

from ctypes import *

dirname = ur'c:\\'
GetDiskFreeSpaceExW = windll.kernel32.GetDiskFreeSpaceExW
freeBytesAvailable = c_ulonglong()
totalNumberOfBytes = c_ulonglong()
totalNumberOfFreeBytes = c_ulonglong()
GetDiskFreeSpaceExW(
  dirname,
  byref(freeBytesAvailable),
  byref(totalNumberOfBytes),
  byref(totalNumberOfFreeBytes))
print "free space of %s: %d bytes" % (dirname, freeBytesAvailable.value)

こういうのちょこちょこ書き溜めたら結構なライブラリになるだろうなあ

677 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:40:42 ]
ttp://starship.python.net/crew/mhammond/win32/

678 名前:676 mailto:sage [2008/03/15(土) 10:02:11 ]
>>677
d
さっそく書き直したよ

>>> import win32file
>>> win32file.GetDiskFreeSpaceEx(u'c:/')

679 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:11:46 ]
おれもやってみたけど
>>676 で帰ってくる値と >>678 で帰ってくる値が微妙に違うw

もちろんその間にdiskは使ってないし
totalNumberOfBytes
の値だけは一緒だから

freeBytesAvailable と totalNumberOfFreeBytes
の値だけが変化してるw

こういうときでも
freeBytesAvailable == totalNumberOfFreeBytes
は常に真なんだな



680 名前:674 mailto:sage [2008/03/15(土) 14:17:33 ]
みなさんありがとう!
Mac OS X と Windows をターゲットにした客先なので
os.name 見て切り替えるしかないですね。

pywin32 でも ctypes でもいいから標準インストールに含まれるようにならないかなーと思ったら
2.5 から ctypes 入ってたのねorz 知らなんだ...

681 名前:636 mailto:sage [2008/03/15(土) 22:24:47 ]
>>659
超ありがとう

682 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:01:51 ]
win32com.clientを使いたいんだけど、
'\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x82\xc5\x82\xb7'
なんてエラーメッセージが帰ってきたんです。
これ、何て読むんですか?

683 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:03:52 ]
>>> print '\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x8
2\xc5\x82\xb7'
クラス文字列が無効です

確かに見づらい罠。

684 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:36:41 ]
>>683
シフトJIS?
utf-8な環境だと????だらけで見れない。

685 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:14:11 ]
だな。sjisにdecodeでおk。

686 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:10:23 ]
教えてください!
PyDEVでプログラムを書いています。
書いたプログラムを実行するのに「次を実行ボタン」「ダイアログが開く」
「Python実行を選択する」「OKボタン」の順に操作するのが面倒です。
また、「左のツリーからファイルを右クリック」「右クリックメニュー」「実行→」「Python実行」
とメニューを辿っていくのも面倒です。
なんかボタン一発で今開いているファイルを実行する方法はありませんか?

687 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:13:01 ]
書いたpyファイルダブルクリックが最速かもな
端末から打つより早いだろうし

688 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:44:35 ]
左側のツリー(Pydevパッケージエクスプローラ)で、
開いているファイルをダブるクリックすると、一瞬マウスが砂時計になって、その後何も起こりません。
開いていないファイルをダブるクリックすると、エディタで開きます。
どこでダブルクリック?

689 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:16:44 ]
困ったことがあったら、
>>1にリンクされている
聖書を読むべき



690 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:29:47 ]
聖書ってお民パイのことか?w

691 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:48:19 ]
ITproにPythonの連載がのってた。
itpro.nikkeibp.co.jp/article/COLUMN/20080207/293301/

2回目がSQLObjectだった。

692 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:50:43 ]
気軽といいつつLinuxを例にしてるアレか

693 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:54:01 ]
SQLAlchemyだったら読みに行くんだが・・・

694 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:04:59 ]
datetime.strptime に UnicodeString 渡したらエラーになった…。
str のまま渡すとうまくいく模様。これって変じゃないか?

----
# -*- coding: cp932 -*-
from pprint import pprint
from datetime import datetime

# 成功
pprint( datetime.strptime("2008年3月16日 2:03", "%Y年%M月%d日 %H:%m") )

# 失敗
pprint( datetime.strptime("2008年3月16日 2:03".decode("cp932"), "%Y年%M月%d日 %H:%m".decode("cp932")) )

----

695 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:37:00 ]
datetime.datetime.strptimeがunicodeならsys.getdefaultencoding()でstrに変換、という処理を行ってるからのようだ。
time.strptimeはそんなことをしていないので、バグかな?

$ python -S
Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)] on linux2
>>> import sys, time, datetime
>>> sys.getdefaultencoding()
'ascii'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5e74' in position 4: ordinal not in range(128)
>>> sys.setdefaultencoding('utf-8')
>>> sys.getdefaultencoding()
'utf-8'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
datetime.datetime(2008, 3, 16, 2, 3)

696 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 14:10:24 ]
strptimeのメインの処理は_strptime.strptimeなんだけど、
これを呼ぶPyObject_CallMethodの第三引数formatが違うんだな。
datetime.datetime.strptimeは"ss"になってる(strへの変換)。
time.strptimeは"O"でタプルのまま渡してる。

697 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:38:50 ]
>>691
SQLObjectのことをフレームワークと言ってて「ふーん」と思った。

698 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:48:46 ]
>>686
Eclipse + Pydev?
F11やCtrl + F11はどうよ

699 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:11:59 ]
>>698
レスありがとう。
F11すると「次を実行ボタン」を押したときと同じでダイアログがでてきました。
>>686で書いたのと同じです。Ctrl+F11は何も起こりません。
ソースをちょこちょこ変更して実行して、、、ていうことを繰り返してると、
実行するまでの動作がだんだん煩わしくなってきます。



700 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:48:22 ]
どなたか教えてください
t=urllib.urlopen("http://〜〜").read()
print type(t)
とするとstrとなるんですが。
utf-8のサイトの場合 tの型がunicodeになってほしいんです
どうしたらよいでしょうか。
python2.5の場合はstrのままテキストに落としたらutf-8として文字化けせずに表示されるのですが
ironpythonの場合テキストエディタで開いたらASCIIとして認識され文字化けされています。
utf-8としてそのファイルを保存し直しても文字化けしたままです。
解決策ご存じの方いましたらお願いします






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

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

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