Не могу переместить файл после загрузки и распаковать - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь скачать zip-файл из источника, распаковать его и после перемещения в другой каталог.

Первая загрузка:

if (!file.exists("inst/extdata/sp_resultados_universo")) {
  tmp <- tempfile(fileext = ".zip")
  download.file("ftp://ftp.ibge.gov.br/Censos/Censo_Demografico_2010/Resultados_do_Universo/Agregados_por_Setores_Censitarios/SP_Capital_20180416.zip", tmp, quiet = TRUE)
  unzip(tmp, exdir = "inst/extdata/sp_resultados_universo", junkpaths=T)
  unlink(tmp)
}

Файл, который я хочу, находится в этом каталоге inst/extdata/sp_resultados_universo/SP Capital/Base informa�oes setores2010 universo SP_Capital (codificação inválida)/CSV/, поэтому, когда я пытаюсь скопировать в inst/extdata/sp_resultados_universo/, я получаю сообщение об ошибке

file.rename("inst/extdata/sp_resultados_universo/SP%20Capital/Base%20informa%87oes%20setores2010%20universo%20SP_Capital(condificação inválida)/CSV/Domicilio02_SP1.csv",
            "inst/extdata/sp_resultados_universo/Domicilio02_SP1.csv")

Warning message:
In file.rename("inst/extdata/sp_resultados_universo/SP%20Capital/Base%20informa%87oes%20setores2010%20universo%20SP_Capital(condificação inválida)/CSV/Domicilio02_SP1.csv",  :      
it was not possible to rename file 'inst/extdata/sp_resultados_universo/SP%20Capital/Base%20informa%87oes%20setores2010%20universo%20SP_Capital(condificação inválida)/CSV/Domicilio02_SP1.csv'
for 'inst/extdata/sp_resultados_universo/Domicilio02_SP1.csv',
reason 'File or directory not found'

Я перевожу сообщение об ошибке, поэтому оно может не соответствовать английскому сообщению.

Я могу изменить имя каталога или переместить файл вручную, но нарушает поток и это не очень хорошо для воспроизводимости. Как я могу справиться с этим внутри R?

Информация о моей системе:

Sys.info()
                                     sysname 
                                     "Linux" 
                                     release 
                             "4.9.0-6-amd64" 
                                     version 
"#1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)" 
                                     machine 
                                    "x86_64"

Заранее большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 28 июня 2018

при использовании R вы можете взаимодействовать с оболочкой linux (или строкой windows cmd) через вызов system (), где вы помещаете команду в кавычки так же, как вы используете в оболочке, например:

system("pwd") # prints current working directory
system("date") # prints 
system("ls | grep .R")  # prints a list of r scripts in the current working directory
system("mv file.txt /home/new_directory/file.txt") # moves your file to another directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...