每50,000行拆分并在python中写入文件

时间:2016-06-23 00:51:41

标签: python

我读取包含75,151行的文件。 我想分开每5万行。 所以我制作了2个文件,一个文件有50,000行,另一个文件有25,151行。

我做了这样的代码 (INSERT_NUMBER:50,000)

 for index, data in enumerate(lines):
   if ((index % INSERT_NUMBER) == 0 and index != 0) or (index == (lines- 1)) : 
           made file ....

这是分割每50,000行和制作新文件的更好方法吗?

1 个答案:

答案 0 :(得分:1)

这是使用itertools.groupby()的一种方式:

#!/bin/bash

keyword="foo"

while IFS= read -r line; do
  [[ "$line" =~ $keyword ]] && line="${line#*#}"
  printf "%s\n" "$line"
done < /etc/network/interfaces > /tmp/interfaces_modified

所以这里的技巧是使用每行的行号使用整数除法将其分组为块,然后使用分组键作为输出文件名的计数器。

它比你现有的更好吗?读取代码有点复杂,但是当你尝试使用模运算进行分组时,它不需要处理那些烦人的边缘情况。