3 回答
![?](http://img1.sycdn.imooc.com/54584d6100015f5802200220-100-100.jpg)
TA贡献1803条经验 获得超3个赞
我已经知道了。感谢大家的帮助。实际上,它是一个包含列表的列表。您需要从列表中提取每一行,并将它们组合成一个新列表。这就是为什么我一开始的代码无法正常工作的原因。
这是代码。
num=[]
split_line=[]
row = []
for line in videosession:
split_line=line.split()
for i,v in enumerate(split_line):
if v=="Clear" :
num.append(i)
for k,val in enumerate(num):
start=0 + k * 16
end=val+1
row.append(split_line[start:end])
for m,n in enumerate(row):
if "Off" in row[m] or float(row[m][10])==0.0:
print(row[m])
![?](http://img1.sycdn.imooc.com/545868b60001587202200220-100-100.jpg)
TA贡献2011条经验 获得超2个赞
您需要分割线并比较列。线条看起来像是空间分隔开的。因此,一旦拆分它,列索引就是固定的。示例检测到的比特率是10,输入状态是11。
with open('testfile_data', 'r', encoding='UTF-8') as fp_nei:
lines = fp_nei.readlines()
i = 0
for line in lines:
value = line.strip().replace('-', '').strip()
if len(value) == 0:
break
i += 1
lines = lines[i+1:]
for line in lines:
split_line = line.split()
if split_line[11] == 'Off' or float(split_line[10]) == 0.0:
print(line)
注意:文件读取和删除标头效率不高。如果标题是恒定的,则只需要执行lines = lines [3:]即可直接获得行,而不是for循环。
![?](http://img1.sycdn.imooc.com/54584ed2000152a202200220-100-100.jpg)
TA贡献1834条经验 获得超8个赞
您必须将文字剪切为splitlines
:
for line in videosessions.splitlines():
然后在空格处分割每行:
parts = line.split()
并检查
parts[10]==0 and parts[11]=="Off"
您必须省略空行以及以“ ---”或“ Session”开头的行。
添加回答
举报