诗岑 2019-12-09 12:00 采纳率: 93%
浏览 279
已采纳

字符串切片,哪里有错误

按照如下代码,遍历file中的字符串

import matplotlib.pyplot as plt
plt.figure()
plt.axes()
file=open("C:/Users/jyz_1/Desktop/新建文本文档.txt")
file=file.read()
lines=file.split("重庆")
x=[0,10,20,30,40]
tu1,tu2,tu3,tu4,tu5=0,0,0,0,0
tl1,tl2,tl3,tl4,tl5=0,0,0,0,0
for line in lines:
    tu=int(line[line.find("\n",line.index("\n")+1)+1:line.index("C")])
    tl=int(line[line.index("~")+1:line.find("C",line.index("C")+1)])

然后python报错:

Traceback (most recent call last):
  File "C:\Users\jyz_1\AppData\Local\Programs\Python\Python37-32\13.py", line 11, in <module>
    tu=int(line[line.find("\n",line.index("\n")+1)+1:line.index("C")])
ValueError: invalid literal for int() with base 10: '阴\n10'

使用debug发现是第二次索引file时tu的值错误
于是我在shell里尝试:

>>> lines=['2015-1-1\n阴\n11c~7c\n微风','2015-1-2\n阴\n10c~8c\n微风']
>>> for line in lines:
    line[line.find("\n",line.index("\n")+1)+1:line.index("c")]

'11'
'10'

结果并没有出错!那么是哪里有问题呢?

  • 写回答

1条回答 默认 最新

  • 空白如空 2019-12-09 13:45
    关注

    说明你这个划分出来有中文,中文转int错误

     invalid literal for int() with base 10: '阴\n10'
    

    ("C:/Users/jyz_1/Desktop/新建文本文档.txt")
    你这个文本的信息是怎么样的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型