Python 从文件中分离英文文本和非英文文本

Python 从文件中分离英文文本和非英文文本,python,python-3.x,nlp,Python,Python 3.x,Nlp,我有一个.csv文件,我想在两个不同的文件中分离非英语文本和英语文本。下面是我尝试过的代码: import string def isEnglish(s): return s.translate(None, string.punctuation).isalnum() file=open('File1.csv','r',encoding='UTF-8') outfile1=open('Eng.csv','w', encoding='utf-8') outfile2=

我有一个.csv文件,我想在两个不同的文件中分离非英语文本和英语文本。下面是我尝试过的代码:

  import string
  def isEnglish(s):
      return s.translate(None, string.punctuation).isalnum()
  file=open('File1.csv','r',encoding='UTF-8')
  outfile1=open('Eng.csv','w', encoding='utf-8')
  outfile2=open('Noneng.csv','w', encoding='utf-8')
  for line in file.readlines():
       r = isEnglish(line)
       if r:
          outfile1.write(line+"\n")
       else:
          outfile2.write(line+"\n")

代码未产生所需的结果。两个文件中都有重复的英文文本。我已附加了一个输出文件的快照。

您忽略了提及代码会产生以下结果:

TypeError: translate() takes exactly one argument (2 given)
请您阅读精美手册:

文档提供了一个很大的提示 您应该调用
str.maketrans(…)
创建所需的翻译映射。 这将帮助您识别以下输入字符串: 严格的字母数字

translation_table = str.maketrans('', '', string.punctuation)

你能澄清你所说的非英语文本是什么意思吗?你只想要ASCII码?那“天真”或“恢复”呢?表情符号?非英语文本指英语以外的语言。保留拉丁字符和表情没有问题。事实上,我想保留表情符号和拉丁字符。你打算如何区分英语和非英语?这里的选项是什么语言?我试图使用TextBlob库的detect_language(),但几行之后就出现了错误。然后我尝试了上面的代码。文件中包含所有语言,如日语、葡萄牙语、法语、西班牙语、乌尔都语、泰米尔语和泰卢固语。translate不用于自动将字符串翻译成其他人类语言。请阅读该函数的文档,它在这里对您毫无帮助。该函数没有传达您希望它传达的内容:“代码没有产生期望的结果。”请告诉我们(1.)代码产生了什么结果,以及(2.)期望的结果。两个文件都有英文文本,每个文本在两个文件中重复n次。当我在notepad++中打开文件时,它会显示“文件太大,无法打开”的消息。原因是两个文件中重复了相同的文本。