为什么最后这个f.close()会触发编辑器报错

来源:1-1 文件的创建与写入(上)

weixin_慕慕0271488

2024-02-02 11:44:44

import os
current_path=os.getcwd()
f=open(current_path+'/'+'a.txt','w') #创建文件(路径,模式)
f1=open(f'{current_path}/b.txt','w')#创建文件(路径,模式

f.write('hello world')#在a文件中写入
f1.write('hiya Im f1')#在b文件中写入

f.close()
f1.close()

#这个时候,f,f1就关闭了,就无法操作,要操作的话要重新OPEN
path=os.path.join(current_path,'a.txt')

f=open(path,'w')
f=f.write('你好呀')#将原来的hello world覆盖了

f=open(path,'w+')
f=f.write('ok呀')#将你好呀给覆盖了

f.close()#这个地方编辑器提示错误

https://img1.sycdn.imooc.com/climg/65bc652809071fae06410521.jpg

写回答

1回答

好帮手慕小猿

2024-02-02

同学,你好! 因为f=f.write('ok呀')代码中的f 变量覆盖了f=open(path,'w+')中的f 变量。覆盖后f 的值是整数,不再是打开文件的f 变量了,所以报错

https://img1.sycdn.imooc.com/climg/65bc8e9509e421a404020076.jpg

同学可将f.write('ok呀')返回值赋值给其它变量,如result,即:result=f.write('ok呀')来避免冲突

https://img1.sycdn.imooc.com/climg/65bc8ec60976236905540129.jpg

祝学习愉快~

0

0 学习 · 4469 问题

查看课程