ERRNO 36 Слишком длинное имя файла - PullRequest
1 голос
/ 14 июля 2020

Я работаю над проектом кодирования python для цензуры определенных слов из txt файла. Большинство решений включают открытие txt-файла и сохранение его в переменной, а затем итерацию по строке. Я по-прежнему считаю эти результаты непоследовательными, поэтому пытаюсь использовать другой метод.

Пример кода:

def strip_by_list(email, list):
    with open(email, 'r') as file:
        filedata = file.read()
        for term in list:
            filedata.replace(term, "**REDACTED**")

    return filedata

Я пытаюсь определить функцию, которая позволяет вводить файл, и список слов для проверки на возможное редактирование.

Назначенная функция кода

  1. Открыть выбранное электронное письмо как файл
  2. взять эти данные и сохранить их в переменной filedata
  3. перебирать термины в списке
  4. для каждого экземпляра этого слова, заменять его на УДАЛЕНО
  5. вернуть переменную filedata

Я продолжаю рисовать следующую ошибку: *** все каталоги

Ошибка:

Traceback (most recent call last):
  File "/home********", line 45, in <module>
    print(strip_by_list(email_two, proprietary_terms))
  File "/home/********************", line 38, in strip_by_list
    with open(email, 'r') as file:
OSError: [Errno 36] File name too long

Любой ввод приветствуется.

1-е обновление:

Как было предложено, я изменил код, чтобы сохранить информацию обратно в переменную:

def strip_by_list(email, list):
    with open(email, 'r') as file:
        for term in list:
            file = file.replace(term, "**REDACTED**")

return file

- Это не помогло устранить ошибку. Он все еще пытается перечислить все содержимое сообщения в имени файла -

, чтобы ответить на другие вопросы

  1. Ubunutu linux filesystem
  2. путь к файлу очень длинный из-за количества подкаталогов
  3. файл был успешно открыт и использован в другой области кода.

например:

email_one = open("email_one.txt", "r").read()

Тогда используется здесь:

def censor(terms, email):
    new_message = email.replace(terms, "*REDACTED*")
    return new_message
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...