-3
import os
import codecs
import argparse
os.chdir('C:\\Users\\Kingsaber\\Desktop\\python_excercises')
a = codecs.open('BeforeKichiku.txt', encoding='utf-8')
p = a.read()
print(p)
import re
#ch = u"I am from 美国。We should be friends. 朋友."
b = re.findall(u"[\u4e00-\u9fff]+", a)
for x in b:
print(x)
期待される結果オブジェクト予想されます。正規表現検索は、文字列やバイトなどが
何が起こるか:文書は正常に印刷されますが、正規表現の検索には以下のエラーが表示されます。正規表現をスイッチして "ch"という文字列を検索すると、すべてが正しく動作します。なんらかの理由で、Unicode文書では動作しません。
エラー:
Traceback (most recent call last):
File "C:/Users/Kingsaber/Desktop/destruga3.py", line 15, in <module>
b = re.findall(u"[\u4e00-\u9fff]+", a)
File "C:\Users\Kingsaber\AppData\Local\Programs\Python\Python35-32\lib\re.py", line 213, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object
はい、 'print()'ではなく 'print'を使用しています。そして、Python 3には 'ur'というプリフィックスはなく、どこにでも' u'プレフィックスを置いてください。しかし、あなたは*具体的*であり、あなたの実際の完全なエラーメッセージを含める必要があります。 –
ああ、私はprint()を修正するのを忘れていました。より詳細なエラーメッセージを表示するにはどうすればよいですか?実行する前に無効な構文が書かれているだけです。 –
これをPythonインタプリタで実行すると、特定の行番号とトークナイザの位置を指す '^'キャレットが与えられます。 'ur 'はPython 3の認識された接頭辞ではないので、おそらく' ur' ... '文字列の終わりを指しています。単に 'u'を削除してください。 –