1140813598 发表于 2020-11-18 11:29:03

关于用str()去将列表强制转换为字符串这件事

小甲鱼第35讲,第三题:https://fishc.com.cn/forum.php?mod=viewthread&tid=48359&extra=page%3D2%26filter%3Dtypeid%26typeid%3D398
import easygui as es
import os


text = es.fileopenbox('请选择一个文件。','打开')
file = open(text,'r+')
file_name = os.path.split(text)
file_list = list(file)
msg = '文件【'+str(file_name)+'】的内容如下:'
file_list1 = es.textbox(msg,'显示文件内容',file_list)
file_list = str(file_list)#在这里用str()强制转换变成字符串时,它会再字符串中添加\去转义列表中的元素
if file_list1 != file_list:
    choose = es.buttonbox('检测到内容发生改变,请选择以下操作:','警告',['覆盖保存','放弃保存','另存为...'])
    if choose == '覆盖保存':
      file.close()
      file1 = open(text, 'w+')
      file1.write(file_list1)
      file1.close()
    elif choose == '放弃保存':
      file.close()
    elif choose == '另存为...':
      catalog = es.filesavebox('请保存!','另存为')
      file.close()
      file1 = open(catalog, 'w+')
      file1.write(file_list1)
      file1.close()
else:
    file.close()

我获取文件内容都是通过list()去获取的,而easygui.textbox()返回的是字符串,请问应该怎么对比list与str去判断文件是否修改过?

jackz007 发表于 2020-11-18 11:46:54

本帖最后由 jackz007 于 2020-11-18 11:51 编辑

f1 = open('spring.txt')
str1 = f1 . read()             # 注意这一句
f1 . close()

f2 = open('spring.txt')
str2 = '' . join(list(f2))   # 注意这一句
f2 . close()

if str1 == str2:
    print('内容一致')
else:
    print('内容不一致')
页: [1]
查看完整版本: 关于用str()去将列表强制转换为字符串这件事