Embora a pergunta pareça totalmente clara, o (s) exemplo (s) não são totalmente claros para mim. Por isso, continuarei com a descrição da questão.
Dividindo um arquivo em partes iguais, adicionando prefixo e sufixo
O script abaixo fará exatamente o que você descreve; vai:
- divida o arquivo em partes iguais (número de linhas)
- adicione um prefixo (como primeira linha)
- adiciona um sufixo (como última linha
Além disso:
-
os arquivos serão nomeados:
split_1, split_2, split_3
etc.
- Todos os arquivos serão criados no diretório de trabalho do script
Um exemplo
Um arquivo como:
aap
noot
mies
wim
zus
jet
teun
vuur
gijs
aardappel
pinda
aap
noot
mies
wim
...
será dividido, como:
something_before
aap
noot
mies
wim
zus
jet
teun
vuur
gijs
aardappel
something_after
etc
O script
#!/usr/bin/env python3
# --- set the file, the prefix , suffix and chunksize below
f = "/home/jacob/Bureaublad/test"
prefix = "something_before"
suffix = "something_after"
chunksize = 10
# --- don't change anything below
n = 1
nfile = 1
with open(f) as read:
for l in read:
if (n-1) % chunksize == 0:
s = prefix+"\n"; a = ""
elif n%chunksize == 0:
a = suffix; s = ""
else:
a = ""; s = ""
open("split_"+str(nfile), "a+").write(s+l+a)
if n%chunksize == 0:
nfile += 1
n += 1
# add the suffix to the last file if it is "incomplete"
last = suffix if a == "" else ""
open("split_"+str(nfile), "a+").write(last)
Como usar
- Copie o script em um arquivo vazio, salve-o como
split_chunks.py
-
Na seção head do script, defina o caminho para o arquivo grande, o prefixo, sufixo e chunksize (número de linhas para dividir)
# --- set the file, the prefix , suffix and chunksize below f = "/home/jacob/Bureaublad/test" prefix = "something_before" suffix = "something_after" chunksize = 10
-
Execute o script com o comando:
python3 /path/to/split_chunks.py
Explicação
... seguirá, precisa dormir:)