R使用fread不解压读取zip内TXT提示文件名不匹配如何解决
报错原因
- 路径层级缺失:该压缩包的最外层根目录为
Data,目标文件的完整内部路径为Data/river/Main.txt,原代码未写入最外层的Data目录,直接从二级子文件夹river开始写路径,无法定位到目标文件。 - 路径分隔符错误:unzip命令识别压缩包内部路径时,仅支持单正斜杠
/作为层级分隔符,原代码中写的双斜杠//会被识别为文件名的组成部分,进一步导致路径匹配失败。
修正方案
将cmd参数内的文件路径替换为压缩包内目标文件的完整正确路径即可,修正后代码如下:
df <- fread(cmd = 'unzip -p Data.zip Data/river/Main.txt', select = c(1,2,5,25), sep = '|', header = FALSE, stringsAsFactors = FALSE, quote = "")
排查小技巧:如果不确定压缩包内的文件准确路径,可以先执行R代码
unzip("Data.zip", list = TRUE),运行后会返回压缩包内所有文件的完整路径、大小等信息,直接复制目标文件的路径填入参数即可,避免手动拼写路径出错。
内容的提问来源于stack exchange,提问作者Xaviermoros
相关产品推荐
相关产品推荐

