python - 逐行读取文件并在python中搜索模式
问题描述
我正在逐行读取文件并存储信息,但有些行略有不同,需要整理一下。
我有一个包含 502 行的文本文件,它类似于
VV item1 value1 item2 value2 itemA valA
VV item1 value1 item2 value2 itemB valB
...
我通过逐行读取文本来存储这些值,但各行之间存在差异。有时我有 itemB 而不是 itemA。我第一次尝试
ifn = open(afile,'r')
while 1:
l = ifn.readline()
print(int(l.split(' ')[1])) #prints value1 as expected
if re.search('itemB', l):
print(int(l.split(' ')[6]))
最后一条 print 语句不打印任何东西,尽管它假设并完全忽略了它。
然后我也试过
ifn = open(afile,'r')
for i,l in enumerate(ifn):
print( linecache.getline(ifn.name,i).split(' ')[1]) )
但它在执行 re.search 语句之前会打印一个空行。
我将不胜感激任何一种方法的帮助。
谢谢。
解决方案
我怀疑是您的 while 循环 + readline() 导致了问题。如果您使用上下文管理器和 for 循环,此代码应该可以工作:
with open('test.txt','r') as file:
for line in file:
if 'itemB' in line:
print(line.split(' ')[5])
此外,您似乎正在尝试访问该行中的第 6 项 - 这意味着您需要使用索引 5
推荐阅读
- c# - StateHasChanged 是重新渲染所有组件还是仅重新渲染差异?
- c++ - QSslcertificate::verify 不检查证书吊销
- function - 当仅显式返回一个参数时,Powershell 函数返回所有参数
- c - 如何在C中询问输入直到ctrl + D
- typescript - 打字稿只使用第一个函数覆盖
- tensorflow - 如何在keras自定义层中循环batch_size
- python - RHEL w/Tkinter & Python3 - 从“Tk”更改活动名称
- javascript - 我可以使用 javascript 库/插件在后台创建没有“地图”的热图吗?
- java - 使用文件java代码中的arraylist登录?
- reactjs - 新创建的 React 应用程序在实时服务器上崩溃