鱼C论坛

 找回密码
 立即注册
查看: 971|回复: 3

有一行代码没看懂

[复制链接]
发表于 2022-2-10 21:54:40 | 显示全部楼层 |阅读模式

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

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

x
with open ('test.txt','r') as f:
    lines = f.readlines()  
print(lines)  
with open('test.txt','w') as new:
    for line in lines:  
        if line not in ['0\n','1\n']:  # 求教各位,请问这行怎么理解?是什么意思呀?没看懂
            new.write(line)            
谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-10 22:31:27 | 显示全部楼层
就是line的内容不是'0\n' 或 '1\n' 其中一个,按行读出来的内容一般末尾都是换行符(\n) 的,也就是说这个实现的效果是过滤内容为 0 或 1 的行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-10 23:36:24 | 显示全部楼层
        这一句的意思是,如果 line 不是以字符 '0' 或 '1' 结尾,那就把 line 写入文件 'test.txt' 。其效果,就是从文件 'test.txt' 中,删除所有以字符 '0' 或者 '1' 结尾的文本行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-11 09:41:24 | 显示全部楼层

if line not in ['0\n','1\n']:
    new.write(line)


因为 readlines 读取文件对象时,会将一整行读取下来,即包含不可见字符 \n 换行符

所以 if 这里的意思就是若读取的字符不是 '0\n' 或 '1\n',那么就将读取到的内容写入新的文件对象中

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 06:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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