只运行报错的代码没问题,但一循环组合在一起就报错有问题
是说超出索引范围,调了好久还是没解决,求各位指教
目的:批量提取txt里的指定内容然后导出
代码如下:
import os
import xlwt
import pandas as pd
path=r'E:\BaiduNetdiskDownload\0.Feature Score - 副本'
files=os.listdir(path)#得到文件夹下所有文件名称
#遍历文件夹
barcode=[]
score=[]
position=[]
i=0
for file in files:
i+=1
print(i)
if i>0:
mainlj=os.path.abspath(r'E:\BaiduNetdiskDownload\0.Feature Score - 副本')
file=os.path.join(mainlj,file)
fn = open(str(file))
f1 = fn.readlines()
list1=[]
list18=[]
list18_1=[]
for index,value in enumerate(f1[0].split('_')):
list1.append(value)
barcode.append(list1[4])
for index,value in enumerate(f1[16].split(':')):
list18.append(value)
position.append(list18[0])
for index,value in enumerate(list18[1].split('=')):
value=value.strip('\n')
list18_1.append(value)
score.append(list18[1])
df=pd.DataFrame({'Barcode':barcode,'Score':score,'Position':position})
print(df)
df.to_csv("./outputsy.csv",encoding='utf_8_sig')
print("导出完成")
报错问题:
在29行代码处上一行打印出list18的长度或该列表,看看它的长度有没有到达2
能把原始文件发一下吗?或者截个图看看也可以。
文件都一样么?
如果一样的话
走遍历
respose = open('respose .txt', 'w+')
for data in track(read_file(‘xxxx.txt’), description='执行中'):
print(‘每行内容’)
if xxx in data:
respose .write(xxx)
if fS in data:
respose .write(xxx)
这是你有的文件第17行没有":", f1[16].split(':')以:分割列表只有一个元素,
list18列表也就只添加了一个元素
只有list18[0]
for index,value in enumerate(list18[1].split('=')):
这行访问list18[1]就是超出索引范围
你print(f1[16])输出下文件的第17行看看是不是正确.
可能有的文件前面多了一行或少了一行,导致第17行不是有":"的那行了