Юлия: как читать сжатый текстовый файл bz2 - PullRequest
4 голосов
/ 07 марта 2020

В R я могу прочитать весь сжатый текстовый файл в символьном векторе как

readLines("file.txt.bz2")

readLines прозрачно распаковывает файлы .gz и .bz2, но также работает с несжатыми файлами. Есть ли что-то аналогичное в Юлии? Я могу сделать

text = open(f -> read(f, String), "file.txt")

, но это не может открыть сжатые файлы. Каков предпочтительный способ чтения файлов bzip2? Есть ли какой-либо подход (помимо ручной проверки расширения имени файла), который может автоматически определить формат сжатия?

1 Ответ

2 голосов
/ 07 марта 2020

Я не знаю ни о чем автомате c, но вы можете (создать и) прочитать сжатый файл bz2:

using CodecBzip2 # after ] add CodecBzip2

# Creating a dummy bz2 file
mystring = "Hello StackOverflow!"
mystring_compressed = transcode(Bzip2Compressor, mystring)
write("testfile.bz2", mystring_compressed)

# Reading and uncompressing it
compressed = read("testfile.bz2")
plain = transcode(Bzip2Decompressor, compressed)
String(plain) # "Hello StackOverflow!"

Также доступны варианты потоковой передачи. Подробнее см. CodecBzip2.jl .

...