跳转至

多语言gzip文件读写

linux 读gzip文件

gz相关linux命令

less file.gz
zcat file.gz
zless file.gz
zmore file.gz
#合并gzip文件
cat file1.gz file2.gz > file3.gz
程序输出输入使用gz文件,更多用法见 Linux 基础
#程序输出转gz
program file | gzip > out.gz
#gz文件为输入
program < gzip -dc file.gz 

# 将2个文件解压再按列合并,最后压缩输出到新文件
paste <(gzip -dc file1.gz ) <(gzip -dc file2.gz ) | gzip > merge.gz

# 将fq文件转成fa
zcat ERR365991_1.fastq.gz |cat -n|awk '{if(NR%4 ==2) {n=int($1/4)+1;print ">"n"\n"$2}}' |gzip > reads.fa.gz

#blastn
blastn -query <(gzip -dc ZS97_cds_10^6.fa.gz)  -db ./MH63_cds -outfmt 6 |gzip > ZS97_cds_10000.gz

#csvtk
csvtk -t filter2 -f '$2>3' <(gzip -dc 12_peak_region_addTC.tsv.gz) |gzip > test.gz
#或用csvtk -o 选项直接输出gz文件
csvtk -t filter2 -f '$2>3' <(gzip -dc 12_peak_region_addTC.tsv.gz) -o test.gz

python 读写gzip文件

python2、3通用

# 写文件,file.gz 不存在,则自动创建
f_out = gzip.open("file.gz", "wt")
f_out.write("new_write1\n")
f_out.close()

# 写文件,追加写
f_out = gzip.open("file.gz", "at")
f_out.write("new_write2\n")
f_out.close()

# 读文件
f_in = gzip.open("file.gz", "rt")
f_content = f_in.read()
print(f_content)
f_in.close()

perl 读写gzip文件

use PerlIO::gzip;

#写文件,file.gz 不存在,则自动创建
open FO, ">:gzip", "file.gz";
print FO "new_num\n";
close FO;

#追加写
open FO, ">>:gzip", "file.gz";
print FO "new_num2\n";
close FO;

#读文件
open FI, "<:gzip", "file.gz";
my $f_content = <FI>;
print $f_content;

R 读写gzip文件

#写文件
gz1 <- gzfile("file.gz", "w")
writeLines(c("new_num"), gz1)
close(gz1)

#读文件
gz2 <- gzfile("file.gz", "r")
readLines(gz2)
close(gz2)

java 读写gzip文件

import java.io.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GzipTest {
    public static void main(String[] args) throws IOException {
        // 写文件
        BufferedWriter fout = new BufferedWriter(new OutputStreamWriter(new GZIPOutputStream(new FileOutputStream("file.gz"))));
        fout.write("new_write1\n");
        fout.write("new_write2\n");
        fout.close();

        // 读文件
        BufferedReader fin = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("file.gz"))));
        String line;
        while ((line=fin.readLine()) != null) {
            System.out.println(line);
        }
    }
}
本文阅读量  次
本站总访问量  次