有个需求:将该文件bill.txt文件进行备份,但是标注为测试的数据不被记录
# 打开文件,得到文件对象,准备读取
fr = open("E:/python-learning/08_python中的文件处理/作业/bill.txt","r",encoding="UTF-8")
# 打开文件,得到文件对象,准备写入
fw = open("E:/python-learning/08_python中的文件处理/作业/bill.txt.bak","w",encoding="UTF-8")
# for循环读取文件
for line in fr:
list = line.strip().split(",")
# 判断内容,将满足的内容写出
if list.index["测试"] != -1:
# 进入下一次循环,这一次后面的内容就跳过了
continue
# 将内容写出去
else:
fw.write(line)
# 由于之前对内容进行了strip操作,因此这需要我们手动写一个换行符
fw.write("\n")
# 关闭两个文件对象,close内含了flush方法
fr.close()
fw.close()
但是程序报错了,首先我通过在循环内部输出了list和type(list)证实了,list即循环读取到的每一行数据都是str类型,然后通过strip去除空格,再根据,spilt分割得到list列表,那么不久可以通过index.["测试"]来获取index下标值吗?如果存在,它的下标值就应该是大于0的(默认都是从左开始),为何程序运行后,报了"测试" is not in list 的ValueError错误