我试图将每隔5行分开追加到一个新文件,每五行的第一行都有我需要的数据,这是我打印时没有任何错误但输出的唯一方法新数据文件的第二行(作为测试)应该是我原始文件的第六行,返回原始文件的第二行,我的新数据的len应该只有2400行而不是202571行。一旦我得到所需的行,我就可以将数据放入kml文件中。
dataList = []
line_count = 0
for line in lineList:
line_count+= 5
dataList.append(line)
line_count += 5
print (format(len(dataList)))
print (dataList [1])
202571
M010176A B: 0 0 0 S: 0 0 0 M: 12 30 135 CMT: 1 BOXHD: 9.4
答案 0 :(得分:0)
我认为你在迭代循环时使用了错误的逻辑。您的代码如下所示。
line_count = 4
for line in lineList:
line_count += 1
if line_count == 5:
line_count = 0
dataList.append(line)
在上面的代码中,无论如何,您都将每行附加到dataList!因为没有逻辑来检查它是否是第五行然后附加到列表中。
以下更改可能会让您实现目标。
public function department()
{
$this->load->model('insert_model');
$data['dept'] = $this->insert_model->category_name_get();
$this->load->view('view_file_name',$data);
}
应用这些更改后,其余代码将正常运行。希望它有所帮助!
答案 1 :(得分:0)
这是一种简单的方法:它将遍历所有行并检查该行是否可被5整除,因此%5 。如果您希望它从0开始,只需删除+ 1即可。如果您只是想将其输出到文件中,我认为通过在阅读其他文件时写入来简化加速过程会更好。如果你想要我,我可以修改它,如果你需要任何帮助,请发表评论。
dataList = []
with open("in.kml", "r") as fi:
for i, line in enumerate(fi):
if (not (i % 5)):
dataList.push(line)
答案 2 :(得分:0)
如果您只想输出每五行,那么Python islice()
函数将为您提供以下帮助:
from itertools import islice
with open('input.txt') as f_input, open('output.kml', 'w') as f_output:
for fifth in islice(f_input, 0, None, 5):
f_output.write(fifth)