-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)
预期结果:在变量打印出来的一切“一”,找到u4e00- \ u9fff之间的所有Unicode字符和下面打印出来。正则表达式搜索字符串的预期或字节状物体
会发生什么:文档打印成功,但正则表达式搜索出现以下错误。如果我切换正则表达式来搜索字符串“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'前缀即可。但你需要*特定*并包含你的实际完整的错误信息。 –
哦,我忘了修复打印()。我如何获得更详细的错误信息?它只是说在运行之前无效的语法。 –
如果你用Python解释器运行它,它会给你一个特定的行号和一个指向标记器位置的'^'插入符号。它可能会指向'ur'...''字符串的末尾,因为'ur'不是Python 3中可识别的前缀。只需放下'u'即可。 –