我有一个大的 .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,而是使用原始文件中使用的两行中的第一个索引名称创建每个文件。
例如,
`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”函数的顺序相同。即,尽量避免循环。
最佳答案
这是否符合您的要求?我不认为用 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)
关于python - 按行将文件拆分成许多不同的文件 - 用原始文件的索引命名每个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990875/