我有一个完整压缩的hdf5文件夹。我想创建一个脚本来遍历每个文件,解压缩,读取hdf5文件的某些元素,然后删除解压缩的文件。
我遇到问题,因为R不会删除hdfs文件,从而产生权限错误。我已使用适当的命令关闭对hdf5文件的引用,该命令返回TRUE,但只能在重新启动rsession后删除该文件。
这是一个例子,
library(h5)
# create an example hdf5 file
file <- h5file("test.hdf5", 'w')
# create some example data.
testvec <- rnorm(10)
testmat <- matrix(1:9, nrow = 3)
row.names(testmat) <- 1:3
colnames(testmat) <- c("A", "BE", "BU")
letters1 <- paste(LETTERS[runif(45, min = 1, max = length(LETTERS))])
letters2 <- paste(LETTERS[runif(45, min = 1, max = length(LETTERS))])
testarray <- array(paste0(letters1, letters2), c(3, 3, 5))
# write the data to hdf5 file
file["test/testvec"] <- testvec
file["test/testmat"] <- testmat
file["test/testarray"] <- testarray
# close the file reference
closed <- h5close(file)
cat(sprintf('Closed the example file = %i\n', closed))
openedFromDisk <- h5file("test.hdf5")
thedata <- readDataSet(openedFromDisk["test/testarray"])
closed <- h5close(openedFromDisk)
cat(sprintf('Closed the loaded file = %i\n', closed))
#attempt to delete the file
removed <- file.remove("test.hdf5")
cat(sprintf('Deleted the loaded file = %i\n', removed))
就像R或h5包正在锁定文件,即使close命令返回TRUE。谁知道我怎么能纠正?我需要删除未压缩的文件,因为我有几千个要处理的大文件,而且我的硬盘不够大。