【发布时间】:2019-03-15 17:31:26
【问题描述】:
我想知道是否有办法让readr::read_tsv 读取带有.bgz 扩展名的块gzip 文件。我可以将文件重命名为 .gz(read_tsv 自动识别),这确实有效,但我不想每次收到新文件时都这样做。
谢谢!
【问题讨论】:
-
@MrFlick 感谢您的提示。这对我有用。您能否将其发布为答案以便我接受?
我想知道是否有办法让readr::read_tsv 读取带有.bgz 扩展名的块gzip 文件。我可以将文件重命名为 .gz(read_tsv 自动识别),这确实有效,但我不想每次收到新文件时都这样做。
谢谢!
【问题讨论】:
您可以传递连接对象而不是文件路径。例如
read_tsv(gzfile("data.bgz"))
gzfile() 函数将采用任何文件名。
【讨论】:
如果文件是bgz,您可以通过 R 重命名文件:
library(fs)
library(stringr)
library(readr)
# Regular expression to find your dataset file named datasetname
# You'll need to change that to the actual name
tsv_file <- dir_ls(".", regexp = "datasetname.*\\.b?gz")
if (str_detect(tsv_file, "bgz"))
file_move(tsv_file, str_replace(tsv_file, "bgz$", "gz"))
dataset <- read_tsv(tsv_file)
【讨论】:
mv 重命名文件来尝试类似的方法。但是这些文件可能比较大,并且会与其他用户共享,所以我想避免重命名它们。