python - 使用前缀分割大型 .gz 文件

标签 python split gzip

我的每个 fastq 文件大约有 2000 万次读取(或 2000 万行)。现在我需要将大的 fastq 文件分割成 block ,每个 block 只有 100 万次读取(或 100 万行),以便于进一步分析。 fastq 文件就像 .txt。

我的想法是,只统计行数,每统计100万行后打印出行数。但是输入文件是.gz压缩形式(fastq.gz),我需要先解压吗?

我怎样才能用Python做到这一点?

我尝试了以下命令:

zless XXX.fastq.gz |split -l 4000000 prefix

(先gzip然后分割文件)

但是,似乎它不适用于前缀(我尝试过)“-prefix”,但它仍然不起作用。另外,使用 split 命令,输出如下:

prefix-aa, prefix-ab...

如果我的前缀是XXX.fastq.gz,那么输出将为XXX.fastq.gzab,这会破坏.fastq.gz格式。

所以我需要的是XXX_aa.fastq.gz,XXX_ab.fastq.gz(即后缀)。我怎样才能做到这一点?

最佳答案

已发布here

zcat XXX.fastq.gz | split -l 1000000 --additional-suffix=".fastq" --filter='gzip > $FILE.gz' - "XXX_"

关于python - 使用前缀分割大型 .gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904195/

相关文章:

Python - 我应该将我的辅助函数放在类内还是类外?

python - 使用 Python 将 CSV 数据写入两个 MYSQL 表

python - 执行pymysql.connect时报错Keyerror 255

r - R 中的字符串拆分和重复行?

arrays - Scala 数组拆分

java - 使用 restclient 或 postman 发送 gzip 数据

Python for循环查询

awk - 使用 AWK 将单个文件的片段分解为多个文件,但我需要进一步的指导

express - webpack gzip 与 Express gzip

gzip - 利用多核进行tar+gzip/bzip压缩/解压