【问题标题】:Force `read_tsv` to decompress file强制“read_tsv”解压文件
【发布时间】:2019-03-15 17:31:26
【问题描述】:

我想知道是否有办法让readr::read_tsv 读取带有.bgz 扩展名的块gzip 文件。我可以将文件重命名为 .gzread_tsv 自动识别),这确实有效,但我不想每次收到新文件时都这样做。

谢谢!

【问题讨论】:

  • @MrFlick 感谢您的提示。这对我有用。您能否将其发布为答案以便我接受?

标签: r readr


【解决方案1】:

您可以传递连接对象而不是文件路径。例如

read_tsv(gzfile("data.bgz"))

gzfile() 函数将采用任何文件名。

【讨论】:

    【解决方案2】:

    如果文件是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)
    

    【讨论】:

    • 感谢您的帮助。我确实通过在 shell 中使用 mv 重命名文件来尝试类似的方法。但是这些文件可能比较大,并且会与其他用户共享,所以我想避免重命名它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2011-11-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多