python - 如何解决二进制模式不采用编码参数

标签 python nltk

代码:

import nltk
eng_lish= open("C:/Users/Nouros/Desktop/Thesis/english.csv","rb", encoding='utf8').read()
bang_lish= open("C:/Users/Nouros/Desktop/Thesis/banglish.csv","rb", encoding='utf8').read()

问题:

Traceback (most recent call last):
File "C:/Users/Nouros/Desktop/Thesis/nltk_run_copy.py", line 3, in <module>
    eng_lish= open("C:/Users/Nouros/Desktop/Thesis/english.csv","rb",encoding="utf-8")
ValueError: binary mode doesn't take an encoding argument

最佳答案

您正在阅读 csv 文件,这些文件是文本 文件。所以你需要编码而不是二进制模式。

所以你不应该使用 rb 打开它们(建议在 Python 2 中使用 csv 模块时这样做,但在其他情况下无关紧要)。

只使用纯文本模式:

open("C:/Users/Nouros/Desktop/Thesis/english.csv","r", encoding='utf8').read()

我更喜欢使用 csv 模块,以避免手动拆分行和列:

import csv
with open(r"C:\Users\Nouros\Desktop\Thesis\english.csv","r", encoding='utf8') as f:
     cr = csv.reader(f,delimiter=",") # , is default
     rows = list(cr)  # create a list of rows for instance

(注意 csv 模块建议在 Python 3 中打开文件进行读取时使用 newline="",但问题实际上是在写入文件时)

关于python - 如何解决二进制模式不采用编码参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830535/

相关文章:

python - 自动刷新伴侣面板小程序

python - 为什么要对单词进行标记/预处理以进行语言分析?

Python nltk 无法在 Pycharm 上运行

python - 在 Tor 上使用 Python 发出请求

python - 如何从 Linux VM 上的 Django 应用程序连接到 Azure SQL 数据库

python - shell脚本,使用输入执行程序并在输出中保存输入与输出结合

python - 在列表中,如何将每个字符串(混合特殊字符)分隔成单个字符?

python - 如何确定语料库中的哪些文本包含Python中的NLTK套件生成的错误?

python - 通过 Pandas 数据帧运行 nltk sent_tokenize

python - 并行文件解析,多CPU核心