35讲,choice==文件覆盖的情况报错
#提供一个文件夹浏览框,让用户选择需要打开的文本文件,打开并显示文件内容
import easygui as g
#找到相应的文件并显示文件路径
me=g.fileopenbox(msg='文件【record】的内容如下', title='显示文件内容', default='*', filetypes=None, multiple=False)
file=open(me,'r+')
file_new=g.textbox(msg='文件【record】的内容如下', title='显示文件内容', text=file, codebox=False, callback=None, run=True)
if file_new != file : #文件可以直接相比
choice=g.buttonbox(msg='', title='文件已经被修改,请选择以下操作: ', choices=('覆盖保存','放弃保存', '另存为..'), image=None, images=None, default_choice=None, cancel_choice=None, callback=None, run=True)
if choice == '覆盖保存':
code=[]
for each_line in file_new:
code.append(each_line)
file.close()
file_new_1=open(file,'w')
file_new_1.writelines(code)
file_new_1.close()
if choice == '放弃保存':
file.close()
if choice == '另存为..':
title=g.enterbox(msg='', title='请输入新的文件名: ', default='', strip=True, image=None, root=None)
final_tltle_foddle=title+'.txt'
code=[]
for each_line in file_new:
code.append(each_line)
final_file=open(final_tltle_foddle,'w+')
final_file.writelines(code)
final_file.close()
这样试试:
# 提供一个文件夹浏览框,让用户选择需要打开的文本文件,打开并显示文件内容
import easygui as g
# 找到相应的文件并显示文件路径
me = g.fileopenbox(msg='文件【record】的内容如下', title='显示文件内容', default='*', filetypes=None, multiple=False)
file = open(me, 'r+')
file_new = g.textbox(msg='文件【record】的内容如下', title='显示文件内容', text=file, codebox=False,
callback=None, run=True)
if file_new != file:# 文件可以直接相比
choice = g.buttonbox(msg='', title='文件已经被修改,请选择以下操作: ', choices=('覆盖保存', '放弃保存', '另存为..'), image=None, images=None,
cancel_choice=None, callback=None, run=True)
if choice == '覆盖保存':
code = []
for each_line in file_new:
code.append(each_line)
file.close()
file_new_1 = open(file.name, 'w')
file_new_1.writelines(code)
file_new_1.close()
if choice == '放弃保存':
file.close()
if choice == '另存为..':
title = g.enterbox(msg='', title='请输入新的文件名: ', default='', strip=True, image=None, root=None)
final_tltle_foddle = title + '.txt'
code = []
for each_line in file_new:
code.append(each_line)
final_file = open(final_tltle_foddle, 'w+')
final_file.writelines(code)
final_file.close() 你已经打开一遍文件了,为什么还要打开一次? qiuyouzhi 发表于 2020-4-5 20:29
你已经打开一遍文件了,为什么还要打开一次?
file.name啥意思
在我的这一句打开前面我把文件关了,所以又开了一次,我再打开一次是为了避免打开之后没有关闭,写不进去,(瞎猜的) 猪猪虾 发表于 2020-4-5 20:35
file.name啥意思
在我的这一句打开前面我把文件关了,所以又开了一次,我再打开一次是为了避免打开之后 ...
1,上面代码不是我写的
2,你也没关闭呀,我没看见file.close() zltzlt 发表于 2020-4-5 20:28
这样试试:
file.name啥意思 qiuyouzhi 发表于 2020-4-5 20:36
1,上面代码不是我写的
2,你也没关闭呀,我没看见file.close()
file.close()
file_new_1=open(file,'w')
关了 猪猪虾 发表于 2020-4-5 20:39
file.close()
file_new_1=open(file,'w')
关了
关闭了那个文件对象应该还存在,你打印一下试试 猪猪虾 发表于 2020-4-5 20:39
file.close()
file_new_1=open(file,'w')
关了
而且你打开的应该是一个文件名吧 qiuyouzhi 发表于 2020-4-5 20:41
而且你打开的应该是一个文件名吧
这样是可以的,我之前向文件里面写入东西的时候,也是这样的
刚才那个人回复的file.name,我改了之后就对了,你知道这是啥意思吗,实现什么功能呢 猪猪虾 发表于 2020-4-5 20:44
这样是可以的,我之前向文件里面写入东西的时候,也是这样的
刚才那个人回复的file.name,我改了之后就 ...
应该是文件对象的一个属性,用于返回打开文件对象的名字
>>> import os
>>> os.chdir("D:\\")
>>> f = open("pip常用源.txt")
>>> f.name
'pip常用源.txt' zltzlt 发表于 2020-4-5 20:28
这样试试:
您还在吗,我改了之后就对了,请问这的file.name是实现什么功能呢 猪猪虾 发表于 2020-4-5 20:46
您还在吗,我改了之后就对了,请问这的file.name是实现什么功能呢
我不是回复你了吗? file.name 是获取文件对象的名字 qiuyouzhi 发表于 2020-4-5 20:46
应该是文件对象的一个属性,用于返回打开文件对象的名字
那我的这个又为什么可以实现相应的功能呢,13句#编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:
title=input('请输入文件名:')
code=[]
message=''
while message != ':w':
message=input('请输入内容【单独输入‘:w’保存退出】:')
if message !=':w':
code.append(message)
code.append(' \r\n')
print(code)
final_tltle_foddle=title+'.txt'
final_tltle=open(final_tltle_foddle,'w+')
final_tltle.writelines(code)
final_tltle.close()
猪猪虾 发表于 2020-4-5 20:53
那我的这个又为什么可以实现相应的功能呢,13句
final_tltle_foddle是一个字符串呀,
open是支持引用变量打开的 qiuyouzhi 发表于 2020-4-5 20:50
我不是回复你了吗?
啊哦哦,鼠标坏了,手动快了,谢谢 猪猪虾 发表于 2020-4-5 20:56
啊哦哦,鼠标坏了,手动快了,谢谢
问题解决了,就结了帖子,把最佳答案设了吧
页:
[1]