• ベストアンサー

Pythonでの日本語処理

Pythonでの日本語処理 Windows環境でPythonを勉強し始めたところです(本当に始めたばかりです)。 エンコードは「utf-8」が推奨されているようなので、 # coding: utf-8 print u'全角でも' print u'半角でも' print u'ともかくutf-8でエンコードして、且つ頭にuを付ける。' というような書き方で統一してしまおうと思っているのですが、 Pythonに詳しい方のご意見をいただきたく。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

2.x系を使うならそれで良いでしょうが、3.x系だとuは不要と思います。

hisahi
質問者

お礼

rinkunさん、ありがとうございます。 分かりました。 2.x系を使ったのは、最初にヒットした入門サイトでそうだったのでというだけです。 ともあれ、理解させていただきました。 クローズさせていただきます。

関連するQ&A

  • pythonでの日本語操作

    お世話になります。 現在、pythonにてあるディレクトリの一覧を表示させるプログラムをしているのですが、対象の中に日本語を含むディレクトリ・ファイルがあると 処理が行われません。 現在書いているコードです。↓ #! /usr/bin/env python # -*- coding: utf-8 -*- # ファイルとサブディレクトリのパスを表示する import os, os.path path = "D:\Myfiles\あいうえお\ " for root, dirs, files in os.walk(path): for file in files: print os.path.join(root) 環境はwindowsXP,python2.6です。 エンコード・デコードを行ったのですがうまくいきませんでした。 ちなみに、pathに日本語が含まれない場合には、一覧が取得できます。 お手数ですが、分かる方いらっしゃいましたら教えてくださいませ。

  • PythonのUnicode文字について 

    PythonのUnicode文字について  最近pythonを始めました。このサイト(http://www.pythonweb.jp/index.html)でいろいろと勉強しているのですがUnicode文字についてよくわかりません。 #coding: UTF-8 print u"こんにちは" と入力するとなぜか File "test.py", line 2 print u"こんにちは" SyntaxError: (unicode error) 'utf8' codec can't decode byte 0x82 in position 0: unexpected code byteと表示され出力されませんでした。何故でしょうか。unicode文字についても説明をお願いします。

  • pythonのエラーについて教えて下さい。

    pythonの勉強をおこなっている超初心者です。 ネットでみた。以下のサンプルコードを実行しようとしました。 # -*- coding: utf-8 -*- print u'モジュールのロード' def test(): print u'関数:testを呼び出しました' if __name__ == '__main__': print 'python-izm' # print 'パイソンイズム' test() しかし、以下の様なエラーとなってしまいます。 File ”test02.py"、line 9 print ’python-izm'  ^ indentionError:expected an indented block ネット調べてみたとことpythonのインデントのエラーだとわかりました。 pythonはインデントで実行範囲を認識するので、 そこがうまく記述できていないであろうとは思うのですが、何回か試したのですが うまく動いてくれません。 どなたか御指南下さい。

  • Pythonで非日本語のUnicode文字が使えない

    日本Pythonユーザ会が配布している、Windows用のPython2.6.1を使用していますが、 日本語以外のUnicode文字、アクセントのあるフランス語やウムラウトのあるドイツ語を 「Unicode文字として」扱うと、強制終了してしまいます。 たとえば UTF-8 で保存した test.py   # encoding: utf-8   txt = u"日本語、にほんご、Japanese"   print txt   raw_input() は正しく実行・表示できますが、   # encoding: utf-8   txt = u"Français"   print txt   raw_input() とすると実行しても強制終了されてしまいます。 "u" を外すと "Franテァais" と表示してくれますが…。 どうすればフランス語の文字などを扱えるのでしょうか? Python初心者(1ヶ月程度)ですので、時間があれば、詳しく具体的に教えていただけると助かります。

  • pythonで日本語csvからデータを読み込みたい

    python初心者です。 mac上で、csvファイルからデータを読み込んでデータベースを作りたいのですが… csvの中身は、例えば ID, 名字,名前, 年齢, 出身地 1, 山田, 太郎, 30, 大阪 2, 田中, 和夫, 55, 千葉 ... のような、極めてシンプルな感じです。 色々調べて、エンコードの問題があることは理解しましたが、web上の解決策を試してもなぜかうまく行きません。(python2.7です。) #coding:utf-8 import csv inputfile = open(u'data.csv', 'rU') reader = csv.DictReader(inputfile) for r in reader: print r とすると、1行ずつ読み込めてはいますが、printしたときの日本語が読めません。 どうすれば良いのでしょうか? また、読めないですが、プログラム内でデータのやり取りをする分には問題ないのでしょうか? (例えば、1番とX番の出身地が同じ、の判定をするとか) 非常に基本的な問題だと思うのですが、sqlでデータベースを作る前のこの段階で躓いて、全然前に進めずにいます(>_<) どうか教えて下さい、宜しくお願いします。

  • pythonのプログラムを走らせるには?

    使用するソフトウェアの関係でWeb(HTMLまたはPHP)とPythonの連携が必要になりました。 しかしPythonをWebで扱ったことがなくいまいちどうしたらいいのか分りません。 <form action="/python/pythontest.py" method="GET">  <input type="submit" name="submit" value="更新"> </form> といった形で呼び出しているのですがファイルが開かれるだけでptythonのプログラムが実行されません。 pythonのプログラムは #!/usr/bin/env python # coding: utf-8 import cgi from datetime import datetime html_body = u""" <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <body> %s </body> </html>""" content='' print "Content-type: text/html;charset=utf-8\n" print (html_body % content).encode('utf-8') と書いています。 何が原因なのでしょうか? /usr/bin/env python のパスがうまく通っていないからでしょうか?

    • ベストアンサー
    • HTML
  • python >の意味

    お世話になっております。pythonを勉強しておりまして、星座を求めるコードを見たのですが最後の行のコードが理解できませんでした。 print a[ m-13 + (d > b[m-1]) ] の>というのはどういう意味なのでしょうか。 よろしくお願いいたします。 # -*- coding: utf-8 -*- a = [u'山羊座', u'水瓶座', u'魚座', u'牡羊座', u'牡牛座', u'双子座', u'蟹座', u'獅子座', u'乙女座', u'天秤座', u'蠍座', u'射手座'] b = [20, 19, 20, 20, 20, 21, 23, 23, 23, 23, 22, 22] m = int(raw_input('月を入力してください: ')) d = int(raw_input('日を入力してください: ')) print a[ m-13 + (d > b[m-1]) ]

  • Python os.system 日本語ファイル名 文字化け

    python2.6 ubuntu 9.04 x64 ファイル文字コード UTF-8 # -*- coding: UTF-8 -*- import os, sys command = 'echo "あいうえお" > あああ.txt' os.system (command) このようにファイル出力すると、_____.txt と出力されます。 どのように解決するのでしょうか 直接 echo "あいうえお" > あああ.txt' とコマンドを打った場合は日本語ファイルが作成されます。 print sys.getfilesystemencoding() print sys.stdin.encoding print sys.stdout.encoding print sys.stderr.encoding print sys.getdefaultencoding() >UTF-8 >UTF-8 >UTF-8 >UTF-8 >ascii

  • pythonの文字コードについて

    pythonの各文字コードにおける日本語の扱われ方について分からないことがあります。 日本語1文字の長さはユニコード文字列では1、8ビット文字列では3という説明が参考書には書いてありました。しかし、実際に実行してみると私の環境では結果が異なりました。さらに文字化けまで起きてしまいました。なぜなのでしょうか?回答お願いいたします。 windowsを使用しており、バージョンはpython2.7です。 以下、私の環境下での実行結果です。 >>> ustr=u"あいうえお" >>> len(ustr) 10 >>> len(ustr.encode("utf-8")) 20 >>> print ustr ‚ ‚¢‚¤‚¦‚¨ >>> print ustr.encode("utf-8") ツつツつ「ツつ、ツつヲツつィ >>> ustr2="あいうえお" >>> len(ustr2) 10 >>> print ustr2 あいうえお

  • Pythonでwhileがうまく動きません。

    プログラムは初心者ですが、Pythonが簡単そうなので参考書を買ってPythonのホームページから最新の3.6.2 32bitをインストールして本に書かれているサンプルプログラムを書き込んで試しているのですが # coding:utf-8 total = 0 a = 1 while total <= 50: print a total = total + a a = a + 1 print(total) これをRunすると 1 2 3 4 5 6 7 8 9 10 55 と出ます Python 3.5.4 64bitでも試してみたのですが、55 と出ます。 他のパソコンでも試してみたのですが、結果は同じでした。 OSはWindws10 1703homeです。 どなたか、詳しい方ご教授をお願いします。