python - 在 python 中错误地读取文本文件的行
问题描述
所以基本上我想迭代具有这种格式的文本文件的行:
-----------------------------------------
Code: 0123456789
EGGS: 3 7.00 21.00
BACON: 1 3.50 3.50
COFFEE: 2 14.20 28.40
TOTAL: 52.90
-----------------------------------------
我有以下代码来逐行阅读:
with open(filename, "rt", encoding="utf-8") as f:
for line in f:
prevline = line
line.split()
if '-' in line:
temp = f.readline().split(':') #Get Code
print(temp)
AFM = temp[1]
print(AFM)
else:
tempProducts = line.split(':') #Get Product in a list
productName = tempProducts[0] #Store Product Name in a variable
productStats = tempProducts[1] #Store Product Stats in a list
productStats = productStats.split(" ")
for value in productStats:
valueArray.append(float(value))
products.update({productName:valueArray})
if '-' in f.readline():
rec = Receipt(AFM,products)
products={}
valueArray=[]
receipts.append(rec)
else:
line=prevline
请注意,我想跳过带有'------------'字符的行代码可以工作,但它会继续读取第二行,然后是第四行,然后是第六行(代码,培根,总计)。问题是我该如何解决这个问题。编辑:文件中有多个收据,所以我每次都需要跳过带有'----------'的行。
解决方案
对于现在看到这篇文章的任何人都认为它已关闭,我没有提供足够的信息并且代码被搞砸了。抱歉浪费您的时间
推荐阅读
- linux - How to copy files with the same name in different source dir and rename in destination dir?
- matlab - 如何在 Matlab 中使用向量找到临界点 x 和 y?
- css - 将对象从父对象的开始平滑地移动到结束而没有重叠
- android - 在不使用流媒体(RTMP、RTSP 等)的情况下从外部相机播放视频到 Exoplayer
- intellij-idea - Geb test ignoring GebConfig.groovy file launched in IntelliJ
- apache-flink - Flink SQL:连接表的内存不足
- db2 - DB2 日期字段导出到平面文件
- javascript - Cordova - 设备方向事件没有触发
- php - PHP函数不渲染到DOM
- sql-server - How can I put the QTY field in ASC order?