1 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 13:41:13.16 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その12 toro.2ch.net/test/read.cgi/tech/1322115727/ 関連スレ Pythonのお勉強 Part45 hibari.2ch.net/test/read.cgi/tech/1321189773/ 【実験台】 Python 3.0 のお勉強 Part 1 【非互換】 toro.2ch.net/test/read.cgi/tech/1235050215/ ◆関連リンク Python の Home Page ttp://www.python.org/ ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘
51 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 07:06:00.64 ] >>46 マルチスレッドの話をしていると考えて、こんなかんじ。 1時間ごとじゃテストが動作チェックが面倒なので10秒ごとにしてある。 import threading, time, datetime def disptime(): while True: t = datetime.datetime.now() if t.second % 10 == 0: print t.strftime('%H:%M:%S') time.sleep(1); t1 = threading.Thread(target=disptime) t1.daemon = True t1.start() while True: x = raw_input() if x == '1': print"0ne"
52 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 07:59:15.55 ] >>50 Makoっていうのがよく使われてるみたいだけどどう?たぶんPythonで実装されてる % cat hello.html <html> <head><title>mako test</title></head> <body><p>Hello, ${name}!</p></body> </html> % cat hello.py from mako.template import Template mytemplate = Template(filename='hello.html') print mytemplate.render(name='mako') % python2 hello.py <html> <head><title>mako test</title></head> <body><p>Hello, mako!</p></body> </html>
53 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 08:11:33.78 ] 痛々しい
54 名前:デフォルトの名無しさん [2012/03/24(土) 08:51:46.05 ] >>51 ご丁寧にありがとうございます。
55 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:00:18.23 ] unittestの書き方についてなんだけど、 例えば hoge/main.py hoge/module/__init__.py hoge/test/testmain.py みたいなディレクトリ構造で、 main.pyにimport moduleが記述されてるとして、 python main.pyで実行したときはうまくいくけど python test/testmain.pyのときはmoduleが見つからない これってどうやって解消するの?
56 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 21:01:25.72 ] sys.path.append(os.path.realpath("..")) import module
57 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 23:35:39.70 BE:1199519036-2BP(0)] >>56 質問者55ではありませんが,同じ疑問を持っていたいので 助かりました。 関連質問ですが,自作のモジュールを /Volumes/vol_1/WebServer/CGI-Executables/01pythonMod01/ の下においている場合には,どのようにパスを指定すれば よろしいのでしょうか?
58 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 00:10:00.29 ] .bashrcなどに export PYTHONPATH=/Volumes/vol_1/WebServer/CGI-Executables/01pythonMod01:$PYTHONPATH を書き加える www.python.jp/doc/2.7/tutorial/modules.html#tut-searchpath docs.python.org/release/3.2/tutorial/modules.html#the-module-search-path を読んだほうが早いよ
59 名前:デフォルトの名無しさん [2012/03/26(月) 12:03:18.88 ] if文でよく%が使われたコードを見るのですがどういう意味なのでしょうか? 下のコードにおいて説明していただきたいです。変換指示子かなと思ったりしたのですが... for num in range(100): if num % 10: continue print num
60 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 12:11:00.73 ] 剰余
61 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 12:58:16.54 ] どの言語でも基本的な演算子
62 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 12:59:03.21 ] いくら「超初心者用」でもこれはありなのか
63 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 13:57:29.32 ] >>59 Pythonにおいて ・数値に対する % は左辺の数値を右辺の数値で割り算したときの「余り」を返す ・ゼロ以外の数値は真(条件式としては成り立っているとみなす)であり、ゼロは偽(条件式としては成り立たないとみなす)である よって、if の条件式として数値 % 数値という式を書いた場合 「左辺を右辺で割ったときの余りがゼロ以外」=「左辺を右辺で割ったら余りが出る(割り切れない)」 という意味になる
64 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 14:38:32.52 ] 共通一次の数IIBの問題に毎年必ず出てくるパターン
65 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 18:54:08.58 ] そんなんで人のコード見てなんか役に立つのかな ああ、コピペできるコード探してるだけだからそんな事はどうでもいいのか
66 名前:3 mailto:sage [2012/03/27(火) 19:35:10.13 ] 例えば、Command という関数があるとき 文字列str = "Command" を上手く変換して、strを使ってCommandを実行する方法はありますか? 同様にLIST = [1, a, x] があるとき、 文字列str = "LIST" を上手く変換してstrを使ってこのリストオブジェクトそのものを指定する ことは出来ますか?つまり、 str[2] = aみたいなことがしたいのですが・・・
67 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:43:50.54 ] >>> a = "['a', 1, 2]" >>> a "['a', 1, 2]" >>> b = eval(a) >>> print b ['a', 1, 2] >>> print b[1] 1
68 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:47:17.37 ] あんま馬鹿なことはしねえほうがいいよ
69 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:47:20.36 BE:4798073298-2BP(0)] >>58 >bashrcなどに 非常に分かりやすい解説をありがとうございます。 (bashrcの設定はMac上で何度もやってきたので よく理解できました。) >www.python.jp/doc/2.7/tutorial/modules.html#tut-searchpath >docs.python.org/release/3.2/tutorial/modules.html#the-module-search-path >を読んだほうが早いよ 読みましたが,貴殿の解説の方が遥かに分かりやすいです。 本当に感謝します。
70 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 00:44:59.07 ] pythonmagickで(Imagemagickがつかえれば何でもいいだけど) 台形変形させるにはどうしたらいいですか? C:\Progra~1\ImageMagick-6.7.6-Q16 %im%\convert.exe tt.jpg -matte -virtual-pixel transparent -distort Perspective "38,11 0,0 475,46 500,0 475,282 500,333 38,314 0,333" ttyy.jpg てな感じで画像の四隅を指定して変形させたいんだけど コマンドの描き方が分からない・・・。
71 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 02:53:24.60 ] >>70 PythonMagick-0.9.7のソースをGrepしてみたけど バインディングされてないみたいよ
72 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 08:53:59.62 ] 馬鹿には無理
73 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 10:25:56.87 ] >>70 コマンドでやれ。パイプを使えばファイルを作らなくてもいい
74 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 11:31:24.63 ] メトロってこの延長線上な気がする ttp://2ch.at/s/20mai00527004.jpg ttp://2ch.at/s/20mai00527005.jpg ttp://2ch.at/s/20mai00527006.jpg ttp://2ch.at/s/20mai00527007.jpg ttp://2ch.at/s/20mai00527008.jpg ttp://2ch.at/s/20mai00527009.jpg
75 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 12:02:39.06 ] __init__.pyは空にしておくのが一般的?
76 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 12:23:19.80 ] パッケージの初期化はそこに書くんだからそんな事ないよ
77 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:22:22.08 ] import threading def fnc() print "Hello" timer = threading.Timer(3, fnc) timer.start() のように、書くとキチンと3秒後にHelloと表示されるのですが、 fncが引数を持つとき、fnc(5)などと指定して、 timer = threading.Timer(3, fnc(5)) などとすると、暴走してしまいます。どうしたら引数を持つ場合に 3秒後に動作させられますか?
78 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:23:22.12 ] あ、上のコードにミスがありました。 ×def fnc() ○def fnc():
79 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:36:06.58 ] Timer(3, lambda: fnc(5))
80 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:11:05.61 ] >>79 そのやり方で上手くいきました!! ありがとうございます!! …それにしても、このスレマジで使えるな。 分からないことはたいがい教えてもらえる。 逆に言えばそれだけ、俺の能力が低いってことだがorz...
81 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:59:38.21 ] 馬鹿には無理
82 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:13:16.52 ] なんでfncで良くてfnc(5)が駄目なのか、理由を理解しないと根本的な解決になってないよ。
83 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:31:13.61 ] コピペしかできないならVBでもやってろ
84 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:38:34.70 ] コードと文字列の区別が付いていないから
85 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:44:59.90 ] www.python.jp/doc/release/library/threading.html#timer class threading.Timer(interval, function, args=[], kwargs={})(原文) interval 秒後に function を引数 args 、キーワード引数 kwargs つきで実行するようなタイマを生成します。 functionは実行できなければいけない 典型的にはtypes.FunctionType んで、fnc(5)はどうなってるか という話
86 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:45:24.73 ] 釣れますか?
87 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:53:31.07 ] 爆釣です
88 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 03:03:32.82 ] s=abc s="cd ef" という一行から、 abc "cd ef" の二つを抜き出すにはどうしたら良いでしょうか?
89 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 03:11:52.92 ] >>77 import threading def fnc(args) print("Hello") print("args =", args) timer = threading.Timer(3, fnc, args=5) timer.start()
90 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 03:16:53.16 ] args=5じゃ動かないよ
91 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 03:29:51.01 ] ○ timer = threading.Timer(3, fnc, args=[5])
92 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 05:26:59.51 ] 馬鹿には無理
93 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 13:34:51.45 ] 有難うございます >>71 なんという・・・orz >>73 その手があったか・・・
94 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 15:24:47.27 ] >>88 >>> re.findall(r's=([a-z]+|"[a-z ]+")', 's=abc s="cd ef"') ['abc', '"cd ef"'] >>> 's=abc s="cd ef"'.split("s=") ['', 'abc ', '"cd ef"']
95 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 16:22:19.24 ] こんにちは、初めてここに質問させていただきます。 d.hatena.ne.jp/dix3/20100513/1273760327 ↑youtube-dllというpythonのスクリプトを使ってようつべをDLするスクリプトが あるのですが、上のURLを参考に試してもFile "<stdin>", line 1と表示された後 エラーでSyntaxError: invalid syntaxと返ってきます。 pythonは2.7.2、実行はPython (command line)というexeから実行しています。 なお、OSはwin7で64bitです。 もしご存じの方がいらっしゃいましたら宜しくお願いします。
96 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 16:51:57.82 ] 都合の悪い箇所があれば伏せたうえでコマンドラインとエラー表示をそのまま貼ってみて SyntaxError: invalid syntax 以外にも表示されてるだろうから
97 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 17:16:42.26 ] >>95 はマルチポスト
98 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 17:34:16.22 ] >>96 返信ありがとうございます。以下エラー表示です。 >>> python youtube-dl.py www.youtube.com/watch?v= ○○ File "<stdin>", line 1 python youtube-dl.py www.youtube.com/watch?v= ○○ ^ SyntaxError: invalid syntax
99 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 17:42:57.11 ] Pythonの対話モードじゃなくてWin7のコマンドプロンプトから実行しないと
100 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 17:46:57.56 ] >>99 ありがとうございます。 ググってもう少し調べてみます。
101 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 18:24:53.64 ] python 2.6.2で一生懸命勉強したりして何とかプログラム組んだ事あるけど 今は3が主流なの? どうなんだろ…。もうpython 3をこれからは勉強した方がいいのかな…
102 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 18:27:12.77 ] Python 2.7.1ですが、正規表現で鬼車やPCREのような再帰のパターン検索をしたいと思うのですが ライブラリ等で対応は出来ているものはあるでしょうか?。 ((ab)(cd)ef(gh(ij))) のようなもので()内を取り出したいんです。
103 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 18:34:12.79 ] ドキュメント読んだか? www.python.jp/doc/release/library/re.html
104 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 18:46:46.12 ] 読みましたけど、そのことを実現してくれる記述はどこにありますか? わたしにはわかりませんでした。ご存知なら教えて下さい。>>103 さんへ。
105 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 19:19:00.36 ] 不愉快だから教えない
106 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 19:24:07.52 ] 読んでる暇があったら実行してみた方が早いんじゃないかと思うよな わざとドキュメント読んだか?って言ったんだろうけど
107 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 19:26:42.22 ] そりゃ幾らなんでも穿った見方過ぎだろw
108 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 19:47:30.95 ] >>> import re >>> re.match(r'((ab)(cd)ef(gh(ij)))', 'abcdefghij').groups() どこのスレも春爛漫って感じ ついでに名前欄も
109 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 19:58:17.91 ] 馬鹿には無理
110 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 20:10:53.33 ] 無理って言う奴が馬鹿
111 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 20:15:22.54 ] 馬鹿は死ね
112 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 20:30:07.51 ] >>102 どこに再帰があるんだ? オレオレ用語はやめろ
113 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 20:49:31.00 ] 再帰した正規表現を使いたいのかも Ruby 1.9(鬼車)の\g とかPerlの(?PARNO)や(?R)が使えるのか って話なのでは?
114 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 20:52:06.21 ] 一般的にはグループ化のネストとか入れ子とか言いますね
115 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 21:13:02.23 ] 上手くいかないんだけど。 $ bison youtube-dl www.youtube.com/watch?v= ○○ youtube-dl:1.1: invalid character: `#' youtube-dl:1.2: invalid character: `!' youtube-dl:1.3: invalid character: `/' youtube-dl:1.4-6: syntax error, unexpected identifier
116 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 21:16:58.89 ] >>115 また斜め上に行ったな というかbisonインスコされているのか…
117 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 21:59:50.50 ] >>113 そいうことですが、なぜ、こんなにたたかれるか不明です。 recursiveな正規表現パターンという言葉がオレオレだとは思わなかったです。まあわたしが悪いんでしょう。 でも、>>108 の脳みそはどうなってるんですかね。信じられませんw
118 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 23:04:36.01 ] 馬鹿には無理
119 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 00:00:20.72 ] pythonのおまんこ要員とは何ですか?
120 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 15:44:33.23 ] pass
121 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 02:18:17.88 ] bytesの値をそのまま出力するにはどうしたらいいのでしょうか? print('{:s}'.format(data)) として、出力をbytesの生のままで出したいのですが、 print(data) とした時の値がaaa.dataに出力されてしまいます。 python3 test.py > aaa.data
122 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 02:33:43.75 ] sys.stdout.write(data) では駄目ですが、 with open('a.data', 'wb') as f: f.write(data) とすれば書込み自体はできると分かっていますが、 後々、|で連結して色々変態的なことをしたいのです。
123 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 02:37:24.23 ] python docを読んでいたら、 sys.stdout.buffer.write(b'abc') と思いっきり書いてありました。 スレ汚し失礼しました。
124 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 11:14:15.24 ] googleのDeveloper's guide(https://developers.google.com/youtube/1.0/developers_guide_python?hl=ja#Playlists)に、 playlist_entry_id = playlist_to_be_updated.id.text.split('/')[[]-1] という記述があるのですが、最後の[[]-1]というのはどういう挙動を意図したものでしょうか " unsupported operand type(s) for - " エラーが発生します
125 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 11:36:41.25 ] 窓口に問い合わせるが吉
126 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 11:54:07.57 ] .split('/')[-1]の間違いじゃないかなあ 他にもauthsub_token = parameters[[]'token' ] とかあるので どこかでゴミが入っちゃったんだと思う
127 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 20:10:17.01 ] print u"あいうえお".find(u"う") で0が帰ってくるんですが、何がいけないんですか?
128 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 20:13:02.45 ] と思ったらPyScripterで保存すると日本語化けちゃうのか・・・ どうしたら日本語の文字コード保持したまま実行できるんでしょうか
129 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/31(土) 20:17:54.90 ] 自己解決しました ファイルの頭に# -*- coding: utf-8 -*-つけたらできました
130 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 14:05:20.77 ] C:\youtube-dl>youtube-dl.py www.youtube.com/watch?v=uEQkVJtyVTc [youtube] Setting language [youtube] uEQkVJtyVTc: Downloading video webpage [youtube] uEQkVJtyVTc: Downloading video info webpage [youtube] uEQkVJtyVTc: Extracting video information [youtube] RTMP download detected [download] Destination: uEQkVJtyVTc.flv ERROR: unable to download video エラーになります><
131 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 14:39:49.74 ] プログラミングではなく単なるツールの使いかたの質問ならDL板のほうがいいんじゃないか もしあっちで相談するなら youtube-dl -v <URL> のほうが話が早いかも
132 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 15:38:49.51 ] rtmpdump のスレ行った方が医院で内科医
133 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 16:45:28.92 ] py2exeでスタンドアローンのウィンドウズアプリもどきが作れたのですが、 バックのコマンドライン用のDOS窓が立ち上がってしまいます。 せっかく拡張子をpywとしているのですが、exeの方はそうなってしまいます。 どうしたらpy2exeで作ったウィンドウズプログラムでDOS窓が立ち上がらない ように出来ますか?宜しくお願いします。
134 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/03(火) 16:48:32.19 ] stackoverflow.com/questions/6480595/make-a-py2exe-exe-run-without-a-console
135 名前:133 mailto:sage [2012/04/03(火) 17:26:51.26 ] >>134 ありがとうございました。そのやり方で解決しましたm(_ _)m
136 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 01:43:00.81 ] open関数でファイルを開いて、writeメソッドでファイルに日本語混じり文字列を書きこみたいのですが、 そのままやると文字コードがShift-JISになります UTF-8にしたいのですがどうすればよいでしょうか? Python 3でOSはWindows 7(日本語版)です
137 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 01:54:02.78 ] fout = open('foo.txt', 'w', encoding='utf-8')
138 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/06(金) 01:56:37.24 ] >>136 Dive Into Python 3 くらい読めば?
139 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/06(金) 23:54:01.57 ] # -*- coding: utf-8 -*- x = raw_input() if x == u"こんにちは": print u"こんにちは" これを実行しこんにちはって打ち込むとUnicodeWarningと出るのですが、どうすればこんにちはと出るでしょうか。
140 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 01:23:54.10 ] >>139 print type(x), type(u"こんにちは"), type("こんにちは") したらわかるけど、 if x.decode("utf-8") == u"こんにちは": #端末がUTF-8な前提 か if x == "こんにちは": にしないと比較できない。
141 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/07(土) 02:39:29.61 ] >>140 if x.decode("utf-8") == u"こんにちは": と if x == "こんにちは": の両方で試してみましたが、UnicodeDecodeError、UnicodeWarningがそれぞれ出ますorz
142 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 03:08:38.91 ] PythonのバージョンとOSも書かずに、文字コード周りの質問するなんていい度胸してんね
143 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/07(土) 03:43:05.13 ] >>142 すいません。 windows vista 32bitでpython2.7です。
144 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 05:30:23.27 ] Windows使ってないからわからないけど、raw_inputで受け取るときの文字コードって使ってるシェル(コマンドプロンプト等)の文字コード依存するんじゃないか? シェルの文字コードがshift_jisだとすると、utf8じゃunicodeにデコードできないし、coding: utf8を宣言してるからstrとの比較でも警告がでる、とか。
145 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 07:33:02.87 ] >シェルの文字コードがshift_jisだとすると、utf8じゃunicodeにデコードできないし、 ↑これが正解 if x.decode("utf-8") == u"こんにちは": じゃなくて if x.decode("cp932") == u"こんにちは": だろう >coding: utf8を宣言してるからstrとの比較でも警告がでる、とか。 少なくともこの↓元のコードに対するコメントとしては全く的外れ if x == u"こんにちは": ↓のことを言ってるなら「strとの比較」と言えるが if x == "こんにちは": 質問者は何をやってるのか自分で判ってるのかな そもそも if x.decode(sys.getdefaultencoding()) == u"こんにちは": でも動きません(キリッ)とか さらなる突っ込みに発展する話題
146 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 08:11:37.06 ] Pythonスレでは煽りを入れることなく簡潔に淡々とお願いしますね
147 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 08:13:43.57 ] setdefaultencodingの話題はタブー
148 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 08:17:03.91 ] >>140 に if x.decode("utf-8") == u"こんにちは": #端末がUTF-8な前提 #端末がUTF-8な前提 ってちゃんと書いてあるのに 無視した >>141 が悪い コメントを読んでないか 知識がなくて意味が判ってない と判断されても仕方ない
149 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 08:52:27.08 ] python インストールした後に sitecustomize.py とか自分でまじめに編集してるひといるの? ●UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 ttp://d.hatena.ne.jp/SumiTomohiko/20070120/1169300624 ●Pythonの文字化け対策:sys.setdefaultencodingの謎 ttp://hain.jp/index.php/tech-j/2008/01/07/Python%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91 >>> import sys >>> hasattr( sys, 'setdefaultencoding' ) False >>> reload( sys ) <module 'sys' (built-in)> >>> hasattr( sys, 'setdefaultencoding' ) True (以下引用) 文字コードを変更するのはそんな根幹を揺るがすものなのか? ソースコードの先頭付近に# coding: UTF-8とか打たなきゃならないのに、 エンコーディングの変更をやってはいけないというのはイマイチしっくりこない。 デフォルトエンコーディングがUTF-8と確定している場合ならまだしも、 asciiがデフォルトであることがほとんどだとすると変えざるを得ないのでは? 例えば配布用アプリケーションを作ったとして、利用者にsitecutomize.pyを追加してくださいと 案内をしなきゃならないってのはちょっと難しい。それに内部にある設定ファイルで文字コード設定するのは ハマリの元だというのは前述の通り。言語が変わったからといってそこが変わることはない。 しかも、sitecutomize.pyはPythonが起動してから”自動で”読み込まれるだけで、スクリプト上にあることに代わりはない。 [禁じ手中の禁じ手]という彼の意見は的はずれだ。 ●Python でのエンコード指定 ttp://d.hatena.ne.jp/benikujyaku/20120121/1327142286 なんか bad know how が定着していく悪寒
150 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 08:56:40.91 ] >>2
151 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/07(土) 09:08:58.67 ] 馬鹿には無理