多语言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
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);
}
}
}
本站总访问量 次