Отделение английского текста и неанглийского текста из файла - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть файл .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")

Код не дает желаемого результата. В обоих файлах присутствует повторяющийся текст на английском языке. Я приложил снимок одного выходного файла.

1 Ответ

0 голосов
/ 03 ноября 2019

Вы не упомянули, что код приводит к такому результату:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...