python - “ascii”编解码器无法解码位置 28 中的字节 0xad:序数不在范围内(128)
问题描述
我正在实现应用程序,我有一个场景,即在规范化文件后读取文件,但在读取文件时出现以下错误:以下是我的尝试
def unicodeToAscii(self,s):
return ''.join(c for c in unicodedata.normalize('NFD',s) if unicodedata.category(c)!='Mn')
def normalizeString(self,s):
s=self.unicodeToAscii(s.lower().strip())
s=re.sub(r"([.!?])",r" \1",s)
s=re.sub(r"([^a-zA-Z.!?])",r" ",s)
s=re.sub(r"(\s+)",r" ",s).strip()
return s
dataFile=os.path.join('/home/amit/Downloads/cornell_movie_dialogs_corpus/cornell movie-dialogs corpus','formatted_movie_lines')
print('please wait .. reading a file')
lines =open(dataFile).read().strip().split('\n')
vocal=Vocabulary()
pairs=[[vocal.normalizeString(unicode(s))for s in pair.split('\t')] for pair in lines]
print('done reading')
错误:
please wait .. reading a file
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-2-4142a7dbef84> in <module>()
118 lines =open(dataFile).read().strip().split('\n')
119 vocal=Vocabulary()
--> 120 pairs=[[vocal.normalizeString(unicode(s))for s in pair.split('\t')] for pair in lines]
121 print('done reading')
122
UnicodeDecodeError: 'ascii' codec can't decode byte 0xad in position 28: ordinal not in range(128)
解决方案
推荐阅读
- angular - 角材料表 - 错误:找不到列
- python - 在 Python 中延迟评估/延迟评估
- crashlytics - 将 Firebase Crashlytics 与 Prometheus 集成
- ios - '结果类型的值
' 没有成员 '错误' [Alamofire, Swift 5] - amazon-s3 - S3 批量操作:坚持使用数十亿的 JSON 库存做准备
- angular - 未能对以角度扩展基类的组件运行单元测试
- javascript - WebGL 调用是否保证总订单?
- php - PHP 在一个用户上插入数据库,但不在另一个具有相同权限的用户上
- regex - 改进有效的正则表达式
- kubernetes - Kubernetes 网络策略出口端口