Python函数中使用file.read(dateiname)报错:file未定义问题咨询
问题解决:Python中
file.read未定义的错误处理 你代码里的问题是混淆了文件对象方法和内置函数——Python不存在file.read()这种内置函数,read()是文件对象的专属方法,必须先获取open()返回的文件对象,再调用它的read()方法。
原代码的两处错误:
open(dateiname, 'r')没有保存返回的文件对象,这行执行后没有实际作用- 错误调用了不存在的
file.read(dateiname),正确的做法是调用文件对象的read()方法,无需传入文件名
修正后的代码(基础版):
def file_read(dateiname): check_datei(dateiname) # 假设该函数已实现文件有效性检查 # 保存open返回的文件对象 file_obj = open(dateiname, 'r') # 调用文件对象的read方法 inhalt = file_obj.read() print(inhalt) # 手动关闭文件,释放资源 file_obj.close()
更推荐的写法(自动管理文件资源):
使用with语句可以自动关闭文件,避免忘记手动关闭导致的资源泄漏:
def file_read(dateiname): check_datei(dateiname) # with块结束后自动关闭文件 with open(dateiname, 'r') as file_obj: inhalt = file_obj.read() print(inhalt)
补充说明:
Python 3已经移除了Python 2中的file内置类型,所有文件操作都通过open()函数创建文件对象来完成,文件的读写、关闭等操作都要通过这个对象的方法执行。
内容的提问来源于stack exchange,提问作者Karin Bermel
相关产品推荐
相关产品推荐

