minecraft_Eric 2023-01-16 20:40 采纳率: 50%
浏览 29
已结题

为什么python open()写不了文件?

为什么python open()写不了文件?文件打开后一片空白,close()后也没有用。源代码如下:

def event(dirpath,name):
    #./user/XXXX/XX/XX/...目录下的统计文件
    alldir=open(dirpath+'//eventall.txt','w+',encoding='UTF-8')
    if alldir.read() == '':
        alldir.write('0,0')
        alldir.close()
        del alldir
        alldir=open(dirpath+'//eventall.txt','w+',encoding='UTF-8')
        r=alldir.read()
        print(r)
        alldir.write(str(sum(list(map(float,r.split(','))))+list(float(name)))+',0')
        alldir.close()
        del alldir
event('整理','4')

运行后报错:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\新建文本文档 (2).py", line 14, in <module>
    event('整理','4')
  File "C:\Users\Administrator\Desktop\新建文本文档 (2).py", line 11, in event
    alldir.write(str(sum(list(map(float,r.split(','))))+list(float(name)))+',0')
ValueError: could not convert string to float: ''

img

但是后来才发现是文件一片空白,大家能帮忙看一下吗

  • 写回答

3条回答 默认 最新

  • cjh4312 2023-01-16 21:10
    关注

    你的代码中间有个del alldir,再次打开后就是空的r是空的,map(float,r.split(',')),所以就会出现你现在的错误。你本意是想分割0,0的
    还有你的list(float(name)),这个写法也是错误,再说前面sum计算以后是float,加后面list,能加吗?

    alldir.write(str(sum(list(map(float,r.split(','))))+float(4))+',0')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月16日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题