Estou começando a trabalhar com notas fiscais eletrônicas. Recebo arquivos em xml zipados por período (02/2021, 03/2021 etc), onde dentro de cada período tem outros arquivos também zipados, representando os dias do mês (01, 02, 03 etc).
Como faço para extraí-los todos e juntá-los em um único arquivo?
Não posso incluir exemplo porque não são dados públicos.
Opa! Pelo o que entendi, seus arquivos vem assim, correto?
02_2021.zip
01_02_2021.zip
01_02_2021.xml
02_02_2021.zip
02_02_2021.xml
…
03_2021.zip
01_03_2021.zip
01_03_2021.xml
02_03_2021.zip
02_03_2021.xml
…
Se for isso, você pode tentar o seguinte. Primeiro, você precisa descompactar todos os arquivos de primeiro nível (mês) e, em seguida, descompactar os de segundo nível (dias), para seguir para a leitura dos arquivos.
No R, seria algo parecido com o seguinte (não tenho como testar sem os arquivos).
Os arquivos estão dispostos conforme o esquema que você fez. De modo que quando crio o objeto ‘arquivos_mes’ retorna
[1] “2020_03.zip” “2020_04.zip” “2020_05.zip” “2020_06.zip”
[5] “2020_07.zip”.
Porém quando faço o
for(a in arquivos_mes){
unzip(zipfile = a, exdir = “arquivos_dia”)
}
Não deveria retornar arquivos do tipo abaixo? (Para depois fazer o for e chegar ao conjunto de XMLs)?
2020_03_01.zip, 2020_03_02.zip, 2020_03_03.zip…
2020_04_01.zip, 2020_04_02.zip, 2020_04_03.zip…
2020_05_01.zip, 2020_05_02.zip, 2020_05_03.zip…
Realmente entendi que o caminho é dezipar o 1º mês e depois seus dias; então o 2º mês e seus dias; e, assim por diante. Mas não sei como transformar isto num script. Teria alguma sugestão? Agradeço desde já a atenção. Mário.