我要先python 发表于 2021-7-25 11:07:58

关于python语义切割后,数据不能存储的问题



如上图,为什么数据写不进去txt呢?求帮助!

阿奇_o 发表于 2021-7-25 11:07:59

本帖最后由 阿奇_o 于 2021-7-25 15:09 编辑

如果你一定要 在同一个文件里 "又读又写",那么 就必须用 'r+'模式。
为什么? —— 因为
'r' 是 只读模式,只能读取,不能写入;
'w' 是 只写模式(所以你在此模式下,调用.readlines()方法,就会报错 not readable );
'w+' 可以写,也可以读,但是 它会先清空!相当于你读不到原来的任何内容。

所以,可以选择的就只有'r+' 模式了,它不会清空原来的内容,可读可写,新写入的会 追加进去。
所以,可以这样写:
def read_write(file, mode):
    with open(file, mode, encoding='utf-8') as f:
      new_lines = # 先读取和修改
      f.seek(0)       # 回到起点
      f.truncate()# 开始清空(开始向下移动指针并删除每一行 )
      f.write('\n'.join(new_lines))   # 写入修改后的内容
   
read_write('em.txt', 'r+')

逃兵 发表于 2021-7-25 11:10:41

写入要用'w'
open(fiilename,'w')


.txt报错.txt.txt不报错
你的计算机是不是把文件后缀名给隐藏了

suchocolate 发表于 2021-7-25 11:13:37

代码里是r读取txt,写入得用w。

我要先python 发表于 2021-7-25 11:15:13

逃兵 发表于 2021-7-25 11:10
写入要用'w'
open(fiilename,'w')



如果用“w”,就报错了:UnsuortedOperation: not readable

木有隐藏。。

我要先python 发表于 2021-7-25 11:19:03

https://www.hualigs.cn/image/60fcd5bbbbb23.jpg

这是用“w”写入的

逃兵 发表于 2021-7-25 11:21:11

咋说呢
读写是w+(覆盖写)或者r+(指针在开头写)
你想实现啥
先分步写,逻辑理清楚再用推导式

我要先python 发表于 2021-7-25 11:24:02

逃兵 发表于 2021-7-25 11:21
咋说呢
读写是w+(覆盖写)或者r+(指针在开头写)
你想实现啥


我现在有一个句子库,

想把句子里无意义的“的、啊、之”这类停词去掉

剩下的词存在txt里面
页: [1]
查看完整版本: 关于python语义切割后,数据不能存储的问题