kognzhezhi 发表于 2022-11-28 15:52

python学习中遇到的问题

本帖最后由 kognzhezhi 于 2022-11-29 11:46 编辑

f1=open('d:/bill.txt','r',encoding='utf-8')
f2=open('d:/bill_back.txt','w',encoding='utf-8')
i=1
while i<=6:
    str1=f1.readline()
    str1=str1.strip()
    str_=str1.split(',')
    if str_=='测试':
      continue
    f2.write(str1)
    f2.write('\n')
    i+=1

f1.close()
f2.close()      
   


想利用这些代码,读取bill.txt 里面的文件,然后判断 里面是不是有'测试'这个字符串,如果有 就不读取
运行的时候 报错显示Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\lianxi1.py", line 8, in <module>
    if str_=='测试':
IndexError: list index out of range
不是很理解 ,因为字符串   周杰伦,2022-01-01,10000,消费,测试   下标应该能读取到4
不知道表述的清楚么

在大佬的指导和帮助下,感觉找到了问题的原因,是我代码写的有问题,空循环的几次 导致函数取不到数据 报错了,感谢大家

kof21411 发表于 2022-11-28 17:22

你自己先判断一下str_的长度,再取值

liert 发表于 2022-11-28 17:22

中文逗号和英文逗号,看看txt里面的是什么逗号,中文逗号是这样的,英文是这样的,的

fengyuan666 发表于 2022-11-28 17:23

为啥不打印数组看看是啥情况

grekevin 发表于 2022-11-28 17:25

在if str_=='测试':之前 把str_打印出来看看是什么

liert 发表于 2022-11-28 17:28

readline读取有换行符,还要判断的时候去掉\n

亚马逊蝌蚪 发表于 2022-11-28 17:38

看问题中你的字符串的标点符号是英文的逗号,而代码中使用的是中文的逗号........

无闻无问 发表于 2022-11-28 18:38

路径上加//试试…
或查看读取到的值…
或用print(locals())打印变量的值看…
最好用调试模式,一下就知道原因。
兄弟,要学会自己找

zzzznl 发表于 2022-11-28 19:11

我是菜鸟,但如果是我的话,会用str.contains(‘测试’)

kognzhezhi 发表于 2022-11-28 19:12

kof21411 发表于 2022-11-28 17:22
你自己先判断一下str_的长度,再取值

长度的话是5个字符串,所以能取到4吧
页: [1] 2
查看完整版本: python学习中遇到的问题