下载并解压缩后无法移动文件

时间:2018-06-27 22:10:36

标签: r encoding

我正在尝试从源代码下载一个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中处理它?<​​/ p>

我的系统信息:

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 :(得分:0)

使用R时,您可以通过对system()的调用与linux shell(或Windows cmd行)进行交互,在其中您像在shell中一样使用引号将命令引起来, 例如:

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