从fi中分离英语文本和非英语文本

2024-10-02 20:40:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.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")

代码未产生所需的结果。两份文件中都有重复的英文文本。我附上了一个输出文件的快照。你知道吗


Tags: 文件csv代码文本importstringlineopen
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:55

你忘了提到代码会产生这样的结果:

TypeError: translate() takes exactly one argument (2 given)

你能看一下精美的手册吗:https://docs.python.org/3/library/stdtypes.html#str.translate

文档提供了一个很大的提示 你应该称之为str.maketrans( ... ) 创建所需的翻译映射。 这将帮助您识别 严格的字母数字。你知道吗

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

相关问题 更多 >