gpt4 book ai didi

r - 从 .zip 中提取某些文件

转载 作者:行者123 更新时间:2023-12-04 17:33:39 25 4
gpt4 key购买 nike

有没有办法从 .zip 中选择性地提取归档名称与模式匹配的文件?

例如,如果我想使用所有 .csv文件中的文件并忽略其他文件。

目前的做法:

zipped_file_names <- unzip('some_archive.zip') # extracts everything, captures file names
csv_nms <- grep('csv', zipped_file_names, ignore.case=TRUE, value=TRUE)
library('data.table')
comb_tbl <- rbindlist(lapply(csv_nms, function(x) cbind(fread(x, sep=',', header=TRUE,
stringsAsFactors=FALSE),
file_nm=x) ), fill=TRUE )

我不只是选择要阅读的内容( csv_nms ),而是寻找一种方法来首先选择要提取的内容。

我目前使用的是 v3.2.2 (Windows)。

最佳答案

感谢@user20650 的评论。

使用两次调用 unzip .先用 list=TRUE只为获得 $Name对于文件。第二带 files=仅提取名称与模式匹配的文件。

  zipped_csv_names <- grep('\\.csv$', unzip('some_archive.zip', list=TRUE)$Name, 
ignore.case=TRUE, value=TRUE)
unzip('some_archive.zip', files=zipped_csv_names)
comb_tbl <- rbindlist(lapply(zipped_csv_names,
function(x) cbind(fread(x, sep=',', header=TRUE,
stringsAsFactors=FALSE),
file_nm=x)), fill=TRUE )

关于r - 从 .zip 中提取某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com