将文件按行分成许多不同的文件 - 使用原始文件的索引命名每个文件

时间:2015-11-30 03:10:36

标签: python linux pandas split

我有一个大的.txt文件,我使用

写入文件
`df.to_csv(header=True,index=True,sep="\t") in python`

我想使用linux:

将该文件拆分为len(index)= 2的文件
split -d -a 10 -l 2 $FILE ./FILES/file_batch

但是,我宁愿使用原始文件中使用的两行中的第一个索引名称来创建每个文件,而不是通过file_batch0000159800创建file_batch0000000001。

e.g,

`FILEoriginal.head()
out[1]:#           col1   col2   col3 ...
   #index0      val    val2   val3 ...
   #index1      val4   val5   val6 ...
   #index2      val7   val8   val9 ...
   #index3      val10  val11  val12 ...`

为:

`ls ./FILES
index0
index2`

`vim ./FILES/index2`

`col   col2  col3
val7   val8  val9
val10  val11 val12`

如果可能的话,我希望脚本的计算效率(时间)与linux'split'函数的顺序相同。即试图避免循环。

1 个答案:

答案 0 :(得分:0)

这样做你想要的吗?我认为在bash中写这个没有任何好处:

for i in range(0, len(df), 2)
   with open(i,'w') as f:
      df.iloc[[i,i+1],:].to_csv(df.index[i],index=False)