鱼C论坛

 找回密码
 立即注册
查看: 1546|回复: 6

[已解决]麻烦各位帮我看看这几行代码如何解决报错

[复制链接]
发表于 2020-10-19 23:09:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. list1 = []
  2. file1 = open("txt1.txt" , "a")
  3. for i in file1:
  4.     if "1" in i:
  5.         i = i.replace("1", "2")
  6.     list1.append(i)
  7. file1.writeline(list1)
  8. file1.close()
复制代码


代码如上。这是我想将文件txt1.txt内的1全部替换为2,但却在for i in file1这里报错了,io.UnsupportedOperation: not readable,有大佬知道应该怎么解决吗?
最佳答案
2020-10-19 23:23:05
1. file1 = open("txt1.txt" , "a")要改成"a+","a"是只写,不能读取
2. file1.writeline(list1)改成writelines
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-19 23:17:51 | 显示全部楼层
list1 = []
file1 = open("txt1.txt" , "a")  #文件名没有路径?路径错误就找不到文件啊
for i in file1:                         #就报错不可读咯?
    if "1" in i:
        i = i.replace("1", "2")
    list1.append(i)
file1.writeline(list1)
file1.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 23:23:05 | 显示全部楼层    本楼为最佳答案   
1. file1 = open("txt1.txt" , "a")要改成"a+","a"是只写,不能读取
2. file1.writeline(list1)改成writelines
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 09:34:21 | 显示全部楼层
冬雪雪冬 发表于 2020-10-19 23:23
1. file1 = open("txt1.txt" , "a")要改成"a+","a"是只写,不能读取
2. file1.writeline(list1)改成writel ...

除了这两个问题外,是不是以a或者a+模式打开文件后,文件指针会指向文件末尾。
所以直接for i in file1会读不到任何内容。
是不是应该打开后把文件指针指向文件开头。file1.seek(0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 09:53:39 | 显示全部楼层
zhaosiyu29 发表于 2020-10-20 09:34
除了这两个问题外,是不是以a或者a+模式打开文件后,文件指针会指向文件末尾。
所以直接for i in file1 ...

CharacterMeaning
'r'open for reading (default)
'w'open for writing, truncating the file first
'x'open for exclusive creation, failing if the file already exists
'a'open for writing, appending to the end of the file if it exists
'b'binary mode
't'text mode (default)
'+'open a disk file for updating (reading and writing)
1.是的
2.昨天的回答有误,如果想替换,打开文件的模式是"r+",并读取后再seek(0,0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-20 19:15:19 | 显示全部楼层
冬雪雪冬 发表于 2020-10-19 23:23
1. file1 = open("txt1.txt" , "a")要改成"a+","a"是只写,不能读取
2. file1.writeline(list1)改成writel ...

谢谢解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-20 19:16:04 | 显示全部楼层
zhaosiyu29 发表于 2020-10-20 09:34
除了这两个问题外,是不是以a或者a+模式打开文件后,文件指针会指向文件末尾。
所以直接for i in file1 ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 15:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表