Pythonが嫌いな人のためのスレッドです。
■関連スレ
Rubyについて(アンチ専用) Part002
http://pc11.2ch.net/test/read.cgi/tech/1200210768/
Pythonについて(アンチ専用)
■ このスレッドは過去ログ倉庫に格納されています
2008/02/21(木) 10:24:06
113デフォルトの名無しさん
2008/02/27(水) 19:49:27 >>112
import turtle
import turtle
114デフォルトの名無しさん
2008/02/27(水) 20:12:1011599
2008/02/27(水) 20:46:24 Pythonにgotoがない時点で終わってると思います。
また安易にErrorキャッチに頼りやすい。
何が
try
except
だ。楽すぎて死ねるわ。
しかも最初からpdbなんていうデバッガもどきがついてるし
また安易にErrorキャッチに頼りやすい。
何が
try
except
だ。楽すぎて死ねるわ。
しかも最初からpdbなんていうデバッガもどきがついてるし
116デフォルトの名無しさん
2008/02/27(水) 21:33:19 goto for Python
ttp://entrian.com/goto/
ttp://entrian.com/goto/
117デフォルトの名無しさん
2008/02/27(水) 22:23:25 PLAY文が無い限りBASICには勝てない
118デフォルトの名無しさん
2008/02/27(水) 22:26:54 PyAudio
The following only summarizes information from the PyAudio Web page.
PyAudio provides Python bindings for the PortAudio audio I/O library. The current version of PyAudio is V0.1.0, which is alpha quality.
Multi-platform
Package is compilable for MS-Windows, Apple Mac OS X, Linux and cygwin.
Real-time sound acquisition
Unknown
Support for 16KHz sampling rate and >8-bit sound
Unknown.
Sound file processing
Unknown.
Efficiency
Unknown.
Pitch existence and frequency
Unknown.
Formants and their bandwidths
Unknown.
FFT with pre-emphasis and Hamming window
Unknown.
Power
Unknown.
The following only summarizes information from the PyAudio Web page.
PyAudio provides Python bindings for the PortAudio audio I/O library. The current version of PyAudio is V0.1.0, which is alpha quality.
Multi-platform
Package is compilable for MS-Windows, Apple Mac OS X, Linux and cygwin.
Real-time sound acquisition
Unknown
Support for 16KHz sampling rate and >8-bit sound
Unknown.
Sound file processing
Unknown.
Efficiency
Unknown.
Pitch existence and frequency
Unknown.
Formants and their bandwidths
Unknown.
FFT with pre-emphasis and Hamming window
Unknown.
Power
Unknown.
119デフォルトの名無しさん
2008/02/27(水) 22:27:49 PyMedia.py
The documentation is very sketchy.
Multi-platform
Package is compilable for MS-Windows, Linux and cygwin.
Real-time sound acquisition
Unknown
Support for 16KHz sampling rate and >8-bit sound
Probably depends upon sound card.
Sound file processing
Yes.
Efficiency
Unknown.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
The documentation is very sketchy.
Multi-platform
Package is compilable for MS-Windows, Linux and cygwin.
Real-time sound acquisition
Unknown
Support for 16KHz sampling rate and >8-bit sound
Probably depends upon sound card.
Sound file processing
Yes.
Efficiency
Unknown.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
120デフォルトの名無しさん
2008/02/27(水) 22:28:12 MCI.py (from Arik Baratz) together with ctypes.py
Multi-platform
ctypes.py is supported by all 32-bit MS Windows (95/98/NT/2000/XP), All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X), All POSIX (Linux/BSD/UNIX-like OSes), WinCE.
MCI.py was designed to communicate with MS-Windows winmm.dll.
Real-time sound acquisition
Unknown.
Support for 16KHz sampling rate and >8-bit sound
Unknown.
Sound file processing
Seems to be able to record to a file.
Efficiency
Commands are sent as strings.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
Multi-platform
ctypes.py is supported by all 32-bit MS Windows (95/98/NT/2000/XP), All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X), All POSIX (Linux/BSD/UNIX-like OSes), WinCE.
MCI.py was designed to communicate with MS-Windows winmm.dll.
Real-time sound acquisition
Unknown.
Support for 16KHz sampling rate and >8-bit sound
Unknown.
Sound file processing
Seems to be able to record to a file.
Efficiency
Commands are sent as strings.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
121デフォルトの名無しさん
2008/02/27(水) 22:28:45 ossaudiodev
Multi-platform
Not enough. Implemented in Linux and FreeBSD. Available for a wide range of open-source and commercial Unices. But apparently not for MS-Windows.
Real-time sound acquisition
Blocking reads, by default. Probably can set to non-blocking.
Support for 16KHz sampling rate and >8-bit sound
Seems to depend upon the sound card.
Sound file processing
Use another package for this.
Efficiency
Direct I/O access.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
Multi-platform
Not enough. Implemented in Linux and FreeBSD. Available for a wide range of open-source and commercial Unices. But apparently not for MS-Windows.
Real-time sound acquisition
Blocking reads, by default. Probably can set to non-blocking.
Support for 16KHz sampling rate and >8-bit sound
Seems to depend upon the sound card.
Sound file processing
Use another package for this.
Efficiency
Direct I/O access.
Pitch existence and frequency
Use another package for this.
Formants and their bandwidths
Use another package for this.
FFT with pre-emphasis and Hamming window
Use another package for this.
Power
Use another package for this.
122デフォルトの名無しさん
2008/02/27(水) 22:29:15 Snack
Multi-platform
The same scripts are usable on Windows 95/98/NT/2K/XP, Linux, Macintosh, Sun Solaris, HP-UX, FreeBSD, NetBSD, and SGI IRIX.
Real-time sound acquisition
Yes.
Support for 16KHz sampling rate and >8-bit sound
Yes.
Sound file processing
Yes.
Efficiency
Inefficient - data is converted into string by the Tcl part of the package and then converted back into data by the Python part.
Pitch existence and frequency
Yes. Each 10mSec, using the ESPS method (the ADMF method is available, too).
Formants and their bandwidths
http://www.speech.kth.se/snack/man/snack2.2/tcl-man.html#sound - see the formant subcommand.
FFT with pre-emphasis and Hamming window
See above link - the powerSpectrum subcommand.
Power
See above link - the power subcommand.
Multi-platform
The same scripts are usable on Windows 95/98/NT/2K/XP, Linux, Macintosh, Sun Solaris, HP-UX, FreeBSD, NetBSD, and SGI IRIX.
Real-time sound acquisition
Yes.
Support for 16KHz sampling rate and >8-bit sound
Yes.
Sound file processing
Yes.
Efficiency
Inefficient - data is converted into string by the Tcl part of the package and then converted back into data by the Python part.
Pitch existence and frequency
Yes. Each 10mSec, using the ESPS method (the ADMF method is available, too).
Formants and their bandwidths
http://www.speech.kth.se/snack/man/snack2.2/tcl-man.html#sound - see the formant subcommand.
FFT with pre-emphasis and Hamming window
See above link - the powerSpectrum subcommand.
Power
See above link - the power subcommand.
123デフォルトの名無しさん
2008/02/27(水) 22:31:57124デフォルトの名無しさん
2008/02/27(水) 22:50:00 は?
125デフォルトの名無しさん
2008/02/27(水) 22:53:29 PUT文がないとゲーム作れないじゃん。
馬鹿言語かよ>PYTHON
馬鹿言語かよ>PYTHON
126デフォルトの名無しさん
2008/02/27(水) 23:37:52 Pythonにはブレースが採用されないから
いつまでたっても糞言語。
いつまでたっても糞言語。
127デフォルトの名無しさん
2008/02/28(木) 09:51:38 ブレースなんてえーだらー
128デフォルトの名無しさん
2008/02/28(木) 09:54:41 我ながら全くどうでもいい書き込みだ
129デフォルトの名無しさん
2008/02/28(木) 15:33:58 乳thon
130デフォルトの名無しさん
2008/02/29(金) 07:01:07131デフォルトの名無しさん
2008/03/01(土) 04:40:26 UTF-8で保存されているファイルをEUCに変換したくて次のような症状が出ています
元ファイルに含まれている「」という文字のところで止まってしまうようです
(この文字がなければ正常に変換出来ました)
最初はこちらを試しました
ifp = open(src, 'rb')
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().decode('utf-8'))
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u9ad9' in position
163: illegal multibyte sequence
その後こちらも試しましたが却って訳が分からなくなりました
ifp = codecs.getreader('utf-8')(open(src, 'rb'))
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().decode('utf-8'))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u9ad9' in position 1
63: ordinal not in range(128)
どう書けば正しく変換出来るのでしょうか?
元ファイルに含まれている「」という文字のところで止まってしまうようです
(この文字がなければ正常に変換出来ました)
最初はこちらを試しました
ifp = open(src, 'rb')
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().decode('utf-8'))
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u9ad9' in position
163: illegal multibyte sequence
その後こちらも試しましたが却って訳が分からなくなりました
ifp = codecs.getreader('utf-8')(open(src, 'rb'))
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().decode('utf-8'))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u9ad9' in position 1
63: ordinal not in range(128)
どう書けば正しく変換出来るのでしょうか?
132デフォルトの名無しさん
2008/03/01(土) 04:44:51 ifp = codecs.getreader('utf-8')(open(src, 'rb'))
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().encode('euc-jp'))
これもだめでした
ofp = codecs.getwriter('euc-jp')(open(dst, 'wb+'))
ofp.write(ifp.read().encode('euc-jp'))
これもだめでした
133デフォルトの名無しさん
2008/03/01(土) 05:02:42 >>131
あきらめろ
hoge = u''
print hoge.encode('euc-jp')
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u9ad9' in position 0: illegal multibyte sequence
あきらめろ
hoge = u''
print hoge.encode('euc-jp')
UnicodeEncodeError: 'euc_jp' codec can't encode character u'\u9ad9' in position 0: illegal multibyte sequence
134デフォルトの名無しさん
2008/03/01(土) 07:29:25 Pythonではしごだかをどう扱うよって話だね
どういう対処法があるのかwktk
どういう対処法があるのかwktk
135デフォルトの名無しさん
2008/03/01(土) 07:39:48 python固有の問題でもないと思うが、
hoge.encode('euc-jp', 'replace')でもしとけば
hoge.encode('euc-jp', 'replace')でもしとけば
136デフォルトの名無しさん
2008/03/01(土) 09:54:38 >>131
UTF-8では表せるけどEUC-JPでは表せない文字というのが山ほどあって
はしごだかはそのひとつ。完全には変換できないです。
読み書きしているファイルが実は HTML や XML だとしたら
xmlcharrefreplace エラーハンドラが便利かも。
>>> import codecs
>>> ifp = codecs.open("input.txt", "r", encoding="utf-8")
>>> ofp = codecs.open("output.txt", "w", encoding="euc-jp", errors="xmlcharrefreplace")
>>> ofp.write(ifp.read())
>>> ifp.close()
>>> ofp.close()
UTF-8では表せるけどEUC-JPでは表せない文字というのが山ほどあって
はしごだかはそのひとつ。完全には変換できないです。
読み書きしているファイルが実は HTML や XML だとしたら
xmlcharrefreplace エラーハンドラが便利かも。
>>> import codecs
>>> ifp = codecs.open("input.txt", "r", encoding="utf-8")
>>> ofp = codecs.open("output.txt", "w", encoding="euc-jp", errors="xmlcharrefreplace")
>>> ofp.write(ifp.read())
>>> ifp.close()
>>> ofp.close()
137デフォルトの名無しさん
2008/03/01(土) 16:07:09138デフォルトの名無しさん
2008/03/01(土) 16:12:14 EUCにコードが無い訳じゃないんだよなぁ
fuga = '\xa1\xc1, \xfc\xe2, \xf9\xf5'
fuga = '\xa1\xc1, \xfc\xe2, \xf9\xf5'
139デフォルトの名無しさん
2008/03/01(土) 16:15:53140デフォルトの名無しさん
2008/03/01(土) 16:27:28 「〜」は統一されていない
ttp://ichi.mo-blog.jp/tedious/2007/05/
ttp://www.mysql.gr.jp/mysqlml/mysql/msg/12432
ttp://ichi.mo-blog.jp/tedious/2007/05/
ttp://www.mysql.gr.jp/mysqlml/mysql/msg/12432
141デフォルトの名無しさん
2008/03/01(土) 16:29:50 ttp://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5
ここの「UNICODEに関する問題」を見ると泣けてくる
ここの「UNICODEに関する問題」を見ると泣けてくる
142デフォルトの名無しさん
2008/03/01(土) 16:42:34143デフォルトの名無しさん
2008/03/01(土) 20:21:19 >>142
いただいた
いただいた
144136
2008/03/02(日) 03:39:09 >>137
「〜」はEUC-JPとUTF-8を相互変換するときのテーブルがOS/言語ごとに違うために
変換できなかったり違うグリフで表示されたりします。
俺はよく使う文字について以下のようなコードでWindows用にそろえてます。
unification = {
0x2014: 0x2015, # HORIZONTAL BAR
0xFF5E: 0x301C, # WAVE DASH
0x2225: 0x2016, # DOUBLE VERTICAL LINE
0x22EF: 0x2026, # HORIZONTAL ELLIPSIS
0xFF0D: 0x2212, # MINUS SIGN
0xFFE0: 0x00A2, # CENT SIGN
0xFFE1: 0x00A3, # POUND SIGN
0xFFE2: 0x00AC} # NOT SIGN
text = unicode(...).translate(unification)
136の例では ifp.read().translate(...) とすればよいと思われ。
「〜」はEUC-JPとUTF-8を相互変換するときのテーブルがOS/言語ごとに違うために
変換できなかったり違うグリフで表示されたりします。
俺はよく使う文字について以下のようなコードでWindows用にそろえてます。
unification = {
0x2014: 0x2015, # HORIZONTAL BAR
0xFF5E: 0x301C, # WAVE DASH
0x2225: 0x2016, # DOUBLE VERTICAL LINE
0x22EF: 0x2026, # HORIZONTAL ELLIPSIS
0xFF0D: 0x2212, # MINUS SIGN
0xFFE0: 0x00A2, # CENT SIGN
0xFFE1: 0x00A3, # POUND SIGN
0xFFE2: 0x00AC} # NOT SIGN
text = unicode(...).translate(unification)
136の例では ifp.read().translate(...) とすればよいと思われ。
145デフォルトの名無しさん
2008/03/02(日) 04:15:41 ごめ、訂正。Windows用にそろえてるんじゃなくて、PythonのEUC-JP/Shift_JIS/ISO-2022-JPコデックが
受け付けるコード値に置換してる、というのが正しいです。
ついでに説明しとくと144のunification(辞書)は、キーはWindowsで日本語入力したときに使われるコード値、
各キーの値はPythonの日本語コデックが受け付けるコード値です。
この8個の文字にOS/言語ごとの変換テーブルの違いが集中しているので、
144の置換をしておくと UTF-8 → EUC-JP/Shift_JIS/ISO-2022-JP 変換時のエラーがだいぶ減るはず。
受け付けるコード値に置換してる、というのが正しいです。
ついでに説明しとくと144のunification(辞書)は、キーはWindowsで日本語入力したときに使われるコード値、
各キーの値はPythonの日本語コデックが受け付けるコード値です。
この8個の文字にOS/言語ごとの変換テーブルの違いが集中しているので、
144の置換をしておくと UTF-8 → EUC-JP/Shift_JIS/ISO-2022-JP 変換時のエラーがだいぶ減るはず。
146デフォルトの名無しさん
2008/03/02(日) 06:08:12 蟻が十匹
147デフォルトの名無しさん
2008/03/02(日) 09:37:37 ありがとうございました
ひょっとして梶●さんですか?
ひょっとして梶●さんですか?
148デフォルトの名無しさん
2008/03/04(火) 14:14:00 hoge = {'a': 4, 'c': 2, 'b': 9}
for k,v in hoge.items():
print k,v
for k,v in hoge.iteritems():
print k,v
なにがちがうんでしょうか?
for k,v in hoge.items():
print k,v
for k,v in hoge.iteritems():
print k,v
なにがちがうんでしょうか?
149デフォルトの名無しさん
2008/03/04(火) 14:17:54 ここは質問スレではないんだが
150デフォルトの名無しさん
2008/03/04(火) 14:29:07 >>> hoge = {'a': 4, 'c': 2, 'b': 9}
>>> type(hoge)
<type 'dict'>
>>> type(hoge.items())
<type 'list'>
>>> type(hoge.iteritems())
<type 'dictionary-itemiterator'>
>>> type(hoge)
<type 'dict'>
>>> type(hoge.items())
<type 'list'>
>>> type(hoge.iteritems())
<type 'dictionary-itemiterator'>
151デフォルトの名無しさん
2008/03/04(火) 23:21:17 (´∀`)ノhoge = dict(enumerate(xrange(1000000)))
152デフォルトの名無しさん
2008/03/07(金) 21:07:32 >>> a = {'hoge': 'fuga', 'hige': 'hage'}
>>> a
{'hige': 'hage', 'hoge': 'fuga'}
>>> b = str(a)
>>> b
"{'hige': 'hage', 'hoge': 'fuga'}"
ここで文字列 b から hash を復元して
c (= {'hoge': 'fuga', 'hige': 'hage'}) を作りたいのですが
どのように書けばよいでしょうか?
>>> a
{'hige': 'hage', 'hoge': 'fuga'}
>>> b = str(a)
>>> b
"{'hige': 'hage', 'hoge': 'fuga'}"
ここで文字列 b から hash を復元して
c (= {'hoge': 'fuga', 'hige': 'hage'}) を作りたいのですが
どのように書けばよいでしょうか?
153デフォルトの名無しさん
2008/03/07(金) 21:11:56 >>> eval(b)
{'hige': 'hage', 'hoge': 'fuga'}
{'hige': 'hage', 'hoge': 'fuga'}
154デフォルトの名無しさん
2008/03/07(金) 21:17:50155デフォルトの名無しさん
2008/03/07(金) 21:40:03 >>> a = {'hoge': 'fuga', 'hige': 'hage'}
>>> import pickle
>>> pickle.dumps(a)
"(dp0\nS'hige'\np1\nS'hage'\np2\nsS'hoge'\np3\nS'fuga'\np4\ns."
>>> pickle.loads("(dp0\nS'hige'\np1\nS'hage'\np2\nsS'hoge'\np3\nS'fuga'\np4\ns.")
{'hige': 'hage', 'hoge': 'fuga'}
>>> import pickle
>>> pickle.dumps(a)
"(dp0\nS'hige'\np1\nS'hage'\np2\nsS'hoge'\np3\nS'fuga'\np4\ns."
>>> pickle.loads("(dp0\nS'hige'\np1\nS'hage'\np2\nsS'hoge'\np3\nS'fuga'\np4\ns.")
{'hige': 'hage', 'hoge': 'fuga'}
156デフォルトの名無しさん
2008/03/08(土) 02:39:38 そのまま書き出すとこんな感じ?
(dp0
S'hige'
p1
S'hage'
p2
sS'hoge'
p3
S'fuga'
p4
s.
読みやすいといえば読みやすいし
JSONやYAMLに比べると微妙なんだけど
このフォーマットって何か由来あるんですか
(dp0
S'hige'
p1
S'hage'
p2
sS'hoge'
p3
S'fuga'
p4
s.
読みやすいといえば読みやすいし
JSONやYAMLに比べると微妙なんだけど
このフォーマットって何か由来あるんですか
157デフォルトの名無しさん
2008/03/08(土) 02:57:25 pickleは人間が編集するようなものではないでしょ
フォーマットは pickle.py, pickletools.py あたり?
フォーマットは pickle.py, pickletools.py あたり?
158デフォルトの名無しさん
2008/03/08(土) 03:47:04 FORTHっぽいね
159デフォルトの名無しさん
2008/03/08(土) 04:31:54 >>153
python はこれができるからいいんだよね、
昔 perl でこれと同じ関数を2週間ぐらいかけて作ろうとしてた時に、(リファレンスやら再帰やら使って・・・)
python は両方builtin でできると知って、一気にperl 捨てたw
python はこれができるからいいんだよね、
昔 perl でこれと同じ関数を2週間ぐらいかけて作ろうとしてた時に、(リファレンスやら再帰やら使って・・・)
python は両方builtin でできると知って、一気にperl 捨てたw
160デフォルトの名無しさん
2008/03/08(土) 14:50:49 >>> a = {'hoge': 'fuga', 'hige': 'hage'}
>>> '%(hoge)s' % a
'fuga'
とか、
>>> b = {'moge': a}
>>> '%(moge)s' % b
"{'hige': 'hage', 'hoge': 'fuga'}"
とかは便利なのは分かったんですが、
>>> '%(moge[hoge])s' % b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'moge[hoge]'
>>> "%(moge['hoge'])s" % b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: "moge['hoge']"
ネストされたhashへのアクセスは出来ないんでしょうか?
>>> '%(hoge)s' % a
'fuga'
とか、
>>> b = {'moge': a}
>>> '%(moge)s' % b
"{'hige': 'hage', 'hoge': 'fuga'}"
とかは便利なのは分かったんですが、
>>> '%(moge[hoge])s' % b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'moge[hoge]'
>>> "%(moge['hoge'])s" % b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: "moge['hoge']"
ネストされたhashへのアクセスは出来ないんでしょうか?
161デフォルトの名無しさん
2008/03/08(土) 15:42:01 出来ない
162デフォルトの名無しさん
2008/03/08(土) 15:44:51163デフォルトの名無しさん
2008/03/08(土) 16:19:36164デフォルトの名無しさん
2008/03/15(土) 00:48:44 ほのぼのとしたアンチスレだな。
165デフォルトの名無しさん
2008/03/15(土) 00:53:23 ともすると本スレのほうが殺伐としていて困る
166デフォルトの名無しさん
2008/03/15(土) 13:39:38 pythonはとっとと、ソート演算子のオーバーライドをサポートしてくれ。
167デフォルトの名無しさん
2008/03/15(土) 13:56:08 演算子?
168デフォルトの名無しさん
2008/03/15(土) 14:53:55 組み込みクラスの__cmp__()を変更したいとか?
組み込みクラスはオーバーライドできない実装を受け入れて
サブクラス化するなりして問題解決した方が精神衛生上よい。
組み込みクラスはオーバーライドできない実装を受け入れて
サブクラス化するなりして問題解決した方が精神衛生上よい。
169デフォルトの名無しさん
2008/03/15(土) 23:10:49 >>166
引数でラムダ式渡すのでは困る理由は何?
引数でラムダ式渡すのでは困る理由は何?
170デフォルトの名無しさん
2008/03/26(水) 02:08:27 c++ やcommon lispに比べたらモジュールがいろいろ足りない
統計とか数式処理とか
今のままでも便利なんだけど歴史が浅いからね
統計とか数式処理とか
今のままでも便利なんだけど歴史が浅いからね
171デフォルトの名無しさん
2008/03/26(水) 06:59:06 >>170
scipyとか
scipyとか
172デフォルトの名無しさん
2008/03/26(水) 19:44:01 C++は老害言語。
173デフォルトの名無しさん
2008/03/26(水) 20:40:07 老害か。
N88Basicのことかな
N88Basicのことかな
174デフォルトの名無しさん
2008/03/27(木) 04:21:42 > c++ やcommon lispに比べたらモジュールがいろいろ足りない
スクリプト言語では Perl が一番揃ってそうだな
次が Python かな
スクリプト言語では Perl が一番揃ってそうだな
次が Python かな
175デフォルトの名無しさん
2008/03/27(木) 08:03:46176デフォルトの名無しさん
2008/03/29(土) 15:27:00 ほしゅ
177デフォルトの名無しさん
2008/03/30(日) 12:24:18 age
178デフォルトの名無しさん
2008/04/01(火) 07:40:47 おまいら、py3kについてはどう思うよ?
俺はclassic style classが使えない時点で見放したが。
俺はclassic style classが使えない時点で見放したが。
179デフォルトの名無しさん
2008/04/01(火) 08:36:31 どんな書き方ができなくなって嫌だったの?
180デフォルトの名無しさん
2008/04/01(火) 11:43:45 単純な書き換えだったら、2to3ツールって言うので自動で変換してもらえるはず
181デフォルトの名無しさん
2008/04/01(火) 11:47:31 互換性の無いバージョンだと前からアナウンスしてるんだから、
不要なものはどんどん廃してもらわんと逆に困る。
不要なものはどんどん廃してもらわんと逆に困る。
182デフォルトの名無しさん
2008/04/01(火) 12:11:52 後にPerl6と揶揄されるバージョンであった
183デフォルトの名無しさん
2008/04/02(水) 00:15:20 Perl6と違ってちゃんと予定日が決まってるようだが。
184デフォルトの名無しさん
2008/04/02(水) 00:35:13 つ4/1
185デフォルトの名無しさん
2008/04/02(水) 00:43:17 そういやParrotって四月馬鹿が発端なんだよな。
186デフォルトの名無しさん
2008/04/02(水) 01:02:26 AprilFoolを字面通り四月馬鹿と言うのは誤訳?
187デフォルトの名無しさん
2008/04/02(水) 02:48:03 伝統
188デフォルトの名無しさん
2008/04/02(水) 07:17:14 intとlongの処遇で、現行バージョンと3kの両方で動くようなソースは事実上書けない。
new style classと違って、こちらは突然のdeprecateになる。
new style classと違って、こちらは突然のdeprecateになる。
189デフォルトの名無しさん
2008/04/02(水) 11:29:03 たしかu""やexcept文の,とかも3kでは駄目だったよね
190デフォルトの名無しさん
2008/04/02(水) 11:48:49 Cで書かれたエクステンションはもっとひどい影響を受けるよ。
191デフォルトの名無しさん
2008/04/02(水) 23:43:05 互換性切るって言ってるんだから別ソースにしようぜ
192デフォルトの名無しさん
2008/04/29(火) 22:22:54 Python支持者の隠れ家スレってこちらですか。
193デフォルトの名無しさん
2008/04/30(水) 02:18:08 そうなんですのよ奥さん
なんかのらくらと、まったり批判及びフレンドリーな雑談で収まってます
なんかのらくらと、まったり批判及びフレンドリーな雑談で収まってます
194デフォルトの名無しさん
2008/04/30(水) 20:11:00 表立ってPython批判する奴って少ないんだよなあ。
批判する点も、「ああ、そこ欠点ってわかってますから」というところ
ばかりだし。
Guidoのやり方が上手なんだろうね。
批判する点も、「ああ、そこ欠点ってわかってますから」というところ
ばかりだし。
Guidoのやり方が上手なんだろうね。
195デフォルトの名無しさん
2008/05/25(日) 03:44:53 自分の読みたい本を紹介しろということをクエストっていうのか?
196デフォルトの名無しさん
2008/06/07(土) 03:08:10 #!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(root, topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print '"dir","%s",%d' % (tgt, siz)
print '"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
これでちゃんと動いていたような気がしたのですが
検索パス中に ▽●▲表 みたいな \5C で終わる
ディレクトリが含まれていると中断されてしまいます。
たぶん日本語の問題だろうと思って
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(root, topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print '"dir","%s",%d' % (tgt, siz)
print '"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
これでちゃんと動いていたような気がしたのですが
検索パス中に ▽●▲表 みたいな \5C で終わる
ディレクトリが含まれていると中断されてしまいます。
たぶん日本語の問題だろうと思って
197デフォルトの名無しさん
2008/06/07(土) 03:10:24 #!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(rootroot.decode('cp932'), topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print '"dir","%s",%d' % (tgt, siz)
print '"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
のように直したら中断はされなくなったのですが、
hoge.py . > fuga.csv
で保存しようとするとエラーになります。
(上のバージョンはリダイレクトは出来ていました。)
Python の日本語の扱いが良く分かりません。
Python 嫌いになりそうです。><
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(rootroot.decode('cp932'), topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print '"dir","%s",%d' % (tgt, siz)
print '"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
のように直したら中断はされなくなったのですが、
hoge.py . > fuga.csv
で保存しようとするとエラーになります。
(上のバージョンはリダイレクトは出来ていました。)
Python の日本語の扱いが良く分かりません。
Python 嫌いになりそうです。><
198デフォルトの名無しさん
2008/06/07(土) 03:16:16 後から貼った方が何か変なので直しておきます。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(root.decode('cp932'), topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print u'"dir","%s",%d' % (tgt, siz)
print u'"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, stat
import time
def main(root):
dirsize = {}
for dirpath, dirnames, filenames in os.walk(root.decode('cp932'), topdown=False):
dirsize[dirpath] = 0
for file in filenames:
tgt = os.path.join(dirpath, file)
siz = os.stat(tgt)[stat.ST_SIZE]
dirsize[dirpath] += siz
for dir in dirnames:
tgt = os.path.join(dirpath, dir)
siz = dirsize[tgt]
dirsize[dirpath] += siz
print u'"dir","%s",%d' % (tgt, siz)
print u'"total","%s",%d' % (root, dirsize[root])
if __name__ == '__main__':
if len(sys.argv) >= 2:
main(sys.argv[1])
199デフォルトの名無しさん
2008/06/07(土) 03:22:05200デフォルトの名無しさん
2008/06/07(土) 03:24:12201デフォルトの名無しさん
2008/06/07(土) 03:50:59 検索パス中に日本語が入っていて
hoge.py c:/ > fuga.csv
で保存しようとするとエラーになります。
hoge.py c:/ > fuga.csv
で保存しようとするとエラーになります。
202デフォルトの名無しさん
2008/06/07(土) 03:53:38 これとか?
http://python.rdy.jp/wiki.cgi?page=%C6%FC%CB%DC%B8%EC
site-packageディレクトリにsitecustomize.pyを設置して、文字コードを指定する。
sys.setdefaultencoding('cp932')
http://python.rdy.jp/wiki.cgi?page=%C6%FC%CB%DC%B8%EC
site-packageディレクトリにsitecustomize.pyを設置して、文字コードを指定する。
sys.setdefaultencoding('cp932')
203デフォルトの名無しさん
2008/06/07(土) 05:34:50 >>198
KeyErrorで止まるのならこれで動くんじゃないかと
decode()の呼び出しで無駄が多いから調整してね
print '"total","%s",%d' % (root.decode('cp932'), dirsize[root.decode('cp932')])
ていうかここアンチスレか
KeyErrorで止まるのならこれで動くんじゃないかと
decode()の呼び出しで無駄が多いから調整してね
print '"total","%s",%d' % (root.decode('cp932'), dirsize[root.decode('cp932')])
ていうかここアンチスレか
204デフォルトの名無しさん
2008/06/07(土) 05:54:35 >>201
だからエラーの内容貼れって
だからエラーの内容貼れって
205デフォルトの名無しさん
2008/06/07(土) 07:54:49 encodeしてないだけだろ
206デフォルトの名無しさん
2008/06/07(土) 12:21:50207デフォルトの名無しさん
2008/06/07(土) 13:07:50 よくわからんが、os.walkをやりたいだけか?
http://docs.python.org/lib/os-file-dir.html
http://docs.python.org/lib/os-file-dir.html
208デフォルトの名無しさん
2008/06/07(土) 13:23:12 >>197
> Python の日本語の扱いが良く分かりません。
> Python 嫌いになりそうです。><
標準出力がリダイレクトされていない場合、Python の print 文は
与えられた Unicode 文字列を自動的に cp932 等の実行環境固有のエンコーディングで
エンコードして印字するようになっている。これは Python インタプリタを
対話的に利用するときには便利な仕組みだ。「実行環境固有のエンコーディング」が
具体的に何であるかは sys.stdout.encoding を見れば分かる。
一方、標準出力がファイル等にリダイレクトされている場合、
どのエンコーディングで文字列をエンコードすべきかを決めるのは難しい問題だ。
cp932 がいいかもしれないし用途によっては utf-8 や iso-8859-1 の方がいいかも知れない。
つまり、Python の立場からは標準出力をリダイレクトする場合のエンコーディングを
これと決めることができない。このことは、標準出力をリダイレクトしているときには
sys.stdout.encoding が None になることから分かる。
この場合、print 文は sys.stdout.encoding の代わりに sys.getdefaultencoding() が返す
エンコーディングでエンコードして出力する。このエンコーディングは Python の出荷時の
設定では ascii になっているので、日本語等を含む Unicode 文字列を print しようとすると
実行時エラーになる。
結局のところ、標準出力をファイルにリダイレクトできるようにプログラムを書くには
sys.stdout.encoding による自動エンコードに頼らないようにしなければいけないということだ。
個人的には、Unicode 文字列をファイルなり標準出力なりに書き出すときは
明示的にエンコードするように心がけるべきだと考えている。暗黙の自動エンコードに
頼るとロクなことがない。
> Python の日本語の扱いが良く分かりません。
> Python 嫌いになりそうです。><
標準出力がリダイレクトされていない場合、Python の print 文は
与えられた Unicode 文字列を自動的に cp932 等の実行環境固有のエンコーディングで
エンコードして印字するようになっている。これは Python インタプリタを
対話的に利用するときには便利な仕組みだ。「実行環境固有のエンコーディング」が
具体的に何であるかは sys.stdout.encoding を見れば分かる。
一方、標準出力がファイル等にリダイレクトされている場合、
どのエンコーディングで文字列をエンコードすべきかを決めるのは難しい問題だ。
cp932 がいいかもしれないし用途によっては utf-8 や iso-8859-1 の方がいいかも知れない。
つまり、Python の立場からは標準出力をリダイレクトする場合のエンコーディングを
これと決めることができない。このことは、標準出力をリダイレクトしているときには
sys.stdout.encoding が None になることから分かる。
この場合、print 文は sys.stdout.encoding の代わりに sys.getdefaultencoding() が返す
エンコーディングでエンコードして出力する。このエンコーディングは Python の出荷時の
設定では ascii になっているので、日本語等を含む Unicode 文字列を print しようとすると
実行時エラーになる。
結局のところ、標準出力をファイルにリダイレクトできるようにプログラムを書くには
sys.stdout.encoding による自動エンコードに頼らないようにしなければいけないということだ。
個人的には、Unicode 文字列をファイルなり標準出力なりに書き出すときは
明示的にエンコードするように心がけるべきだと考えている。暗黙の自動エンコードに
頼るとロクなことがない。
209208の続き
2008/06/07(土) 13:24:23 じゃあ具体的にどうすればいいのかという話だけど、お勧めは次の方法だ。
まず次のように標準出力を適当なエンコーダで包む。
import codecs
Writer = codecs.getwriter(sys.getfilesystemencoding())
stdout = Writer(sys.stdout)
その上で print 文をすべて次のように書く。
print >>stdout, '"total","%s",%d' % (root, dirsize[root])
この例ではリダイレクトしているか否かに関わらず sys.getfilesystemencoding() の返す
エンコーディングでエンコードするようにしている。このエンコーディングは、俺の知る限り
標準出力がリダイレクトされていない場合の sys.stdout.encoding と一致している。
sys.getfilesystemencoding() を使う代わりに、例えば cp932 に決めうちしちゃうとか、
コマンドライン引数で出力エンコーディングを指定するようにするといった方法も考えられる。
標準出力リダイレクト時のエンコーディングをどうするかは用途に強く依存する問題なので
こればかりはプログラムを書く人(つまり197さん)が決めるしかない。
まず次のように標準出力を適当なエンコーダで包む。
import codecs
Writer = codecs.getwriter(sys.getfilesystemencoding())
stdout = Writer(sys.stdout)
その上で print 文をすべて次のように書く。
print >>stdout, '"total","%s",%d' % (root, dirsize[root])
この例ではリダイレクトしているか否かに関わらず sys.getfilesystemencoding() の返す
エンコーディングでエンコードするようにしている。このエンコーディングは、俺の知る限り
標準出力がリダイレクトされていない場合の sys.stdout.encoding と一致している。
sys.getfilesystemencoding() を使う代わりに、例えば cp932 に決めうちしちゃうとか、
コマンドライン引数で出力エンコーディングを指定するようにするといった方法も考えられる。
標準出力リダイレクト時のエンコーディングをどうするかは用途に強く依存する問題なので
こればかりはプログラムを書く人(つまり197さん)が決めるしかない。
210デフォルトの名無しさん
2008/06/07(土) 14:04:17 >>209
u'"total","%s",%d'じゃない?
u'"total","%s",%d'じゃない?
211210
2008/06/07(土) 14:14:49 ごめん、勘違いしてた
str % unicode はunicodeになるからいいのか
str % unicode はunicodeになるからいいのか
212デフォルトの名無しさん
2008/06/07(土) 14:16:34 >>211
その辺がマンドクセなんでp3kではbyteとunicodeのみになるんだろうな。
その辺がマンドクセなんでp3kではbyteとunicodeのみになるんだろうな。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 豚汁の弱点
- 人生がつまらんやつ、130円で大根買え。
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
