函数中的 NameError (python 3.6)



我需要定义一个函数来打开一个文本文件,读取它,然后将整个文件加载到一个字符串中。这是我到目前为止所拥有的:

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(文件名(
名称错误:未定义名称"文件名">

我在这里做错了什么?

无论如何,您的代码都不起作用。

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()

filenamevar 尚未定义,您必须稍微交换行:

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

还有一些介绍如何在Python 3中处理纯文本文件的一些介绍 和 SO 问题:如何在 Python 中将文本文件读入字符串变量对您有用。

也许你想做的是:

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()上的更正。

最新更新