Ошибка имени в функции (python 3.6) - PullRequest
0 голосов
/ 02 мая 2018

Мне нужно определить функцию, которая открывает текстовый файл, читает его, а затем загружает весь файл в строку. Это то, что я до сих пор:

def encrypt_file(filename):
    open_file = open(filename, 'r')
    file_content = filename.read()
    filename.close()

encrypt_file(filename)
user_input = input('enter file name: ')

Это ошибка, которую я получаю:

encrypt_file (имя файла)
NameError: имя 'filename' не определено

Что я здесь не так делаю?

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Возможно, что вы хотите сделать, это:

def encrypt_file(filename):
    open_file = open(filename, 'r')
    file_content = filename.read()
    open_file.close()

filename = input('enter file name: ')
encrypt_file(filename)

Обратите внимание также на исправление в строке open_file.close().

0 голосов
/ 02 мая 2018

Ваш код все равно не будет работать.

def encrypt_file(filename):
    open_file = open(filename, 'r')
    file_content = open_file.read()
    open_file.close()

some_filename = input('enter file name: ')
encrypt_file(some_filename)

Лучшая практика:

def encrypt_file(filename):
    with open(filename, 'r') as open_file:
        file_content = open_file.read()
0 голосов
/ 02 мая 2018

Вариант filename еще не определен, вам нужно немного поменять местами строки:

filename = input('enter file name: ')
encrypt_file(filename)

Также несколько введений в Как работать с простыми текстовыми файлами в Python 3 и так вопрос: Как мне прочитать текстовый файл в строковую переменную на Python было бы полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...