Python中EasyGui文件保存问题
课后作业035讲动动手35题,为什么我这样写,选择另存为的时候文件保存不了?{:5_104:}import os
import easygui as g
file_name = input('请输入你需要打开文件的地址:')
f = open(file_name, 'r+')
neirong = f.read()
f.close()
name = os.path.basename(file_name)
msg = '文件【%s】的内容如下:' % name
f1 = g.textbox(msg, title='显示文件内容', text=neirong)
if f1 != neirong:
msg = '检测到文件内容发生改变,请选择以下操作:'
choose = g.buttonbox(msg, title='', choices=['覆盖保存', '放弃保存', '另存为'])
if choose == '覆盖保存':
f = open(file_name, 'w')
f.write(f1)
f.close()
elif choose == '放弃保存':
pass
elif choose == '另存为':
g.filesavebox(title='另存为', default='.txt', filetypes=['*.txt'])
import os
import easygui as g
file_name = input('请输入你需要打开文件的地址:')
f = open(file_name, 'r+')
neirong = f.read()
f.close()
name = os.path.basename(file_name)
msg = '文件【%s】的内容如下:' % name
f1 = g.textbox(msg, title='显示文件内容', text=neirong)
if f1 != neirong:
msg = '检测到文件内容发生改变,请选择以下操作:'
choose = g.buttonbox(msg, title='', choices=['覆盖保存', '放弃保存', '另存为'])
if choose == '覆盖保存':
f = open(file_name, 'w')
f.write(f1)
f.close()
elif choose == '放弃保存':
pass
elif choose == '另存为':
file = g.filesavebox(title='另存为', default='.txt', filetypes=['*.txt'])
f = open(file, 'w')
f.write(f1)
f.close()
Twilight6 发表于 2020-6-24 17:54
想请教一下,filesavebox()函数是只返回保存的文件名吗?我之前的代码连保存的文件都没有。。 丿autistic 发表于 2020-6-24 18:02
想请教一下,filesavebox()函数是只返回保存的文件名吗?我之前的代码连保存的文件都没有。。
filesavebox() 返回的是一个完整的路径 Twilight6 发表于 2020-6-24 18:04
filesavebox() 返回的是一个完整的路径
但是如果路径中有文件名的话,应该会有对应的文件产生吧?就像f = open('test.txt', ‘w’) 在路径中没有test文件时会新建一个test。txt文件
我就是不知道为什么连对应的文件都没有。。 本帖最后由 Twilight6 于 2020-6-24 18:34 编辑
丿autistic 发表于 2020-6-24 18:12
但是如果路径中有文件名的话,应该会有对应的文件产生吧?就像f = open('test.txt', ‘w’) 在路径中没 ...
f = open(r'test.txt','w')
实际上是自动帮你加上了当前工作目录的路径,虽然你这里填的是文件名 实际上Python 自动帮你加上了当前工作环境的路径在 test.txt 前
比如我的这个代码的路径是 C:\t\t.py ,那么正常情况工作路径就为 C:\t 当你 f = open(r'test.txt', 'w') Python 自动帮你加上了路径 f = open(r'C:\t\test.txt', 'w')
但是如果路径中有文件名的话,应该会有对应的文件产生吧?就像f = open('test.txt', ‘w’) 在路径中没有test文件时会新建一个test。txt文件
我就是不知道为什么连对应的文件都没有。。
filesavebox() 返回的是一个路径,而且会自动加上你在 filesavebox() 那输入框内输入的文件名
配合 open 以 w 写入模式打开 就可以在你选定的地方写入文件了,也就算保存吧~
我帮你改过代码了,那个就可以正常使用
Twilight6 发表于 2020-6-24 18:19
f = open(r'test.txt','w')
实际上是自动帮你加上了当前工作目录的路径,虽然你这里填的是文件名 实 ...
所以意思就是filesavebox() 只是单纯返回一个路径名称,文件保存的话还是要配合open来完成。
谢谢你{:5_110:} 丿autistic 发表于 2020-6-24 19:07
所以意思就是filesavebox() 只是单纯返回一个路径名称,文件保存的话还是要配合open来完成。
谢谢你{:5_ ...
嗯 是的客气~~
页:
[1]