gpt4 book ai didi

raku - 需要在 Raku 中的每 n 行读取文本文件的建议

转载 作者:行者123 更新时间:2023-12-04 13:25:37 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

2年前关闭。




Improve this question




我正在寻找一些关于如何通过 Raku/perl6 中的每个第 n 个文件读取文本文件的建议。

在生物信息学研究中,有时我们需要以一种不太直接的方式解析文本文件。例如 Fastq 文件,它一次以 4 行为一组存储数据。更重要的是,这些 Fastq 文件是成对出现的。所以如果我们需要解析这样的文件,我们可能需要从第一个 Fastq 文件中读取 4 行,从第二个 Fastq 文件中读取 4 行,然后从第一个 Fastq 文件中读取接下来的 4 行,然后读取来自第二个 fastq 文件的接下来的 4 行,......

我可以就解决此问题的最佳方法提出一些建议吗? Raku 的“IO.lines”方法似乎能够一次处理每一行。但不确定如何处理每一行

示例 fastq 文件对:https://github.com/wtwt5237/perl6-for-bioinformatics/tree/master/Come%20on%2C%20sister/fastq
我们之前用“IO.lines”尝试过的:https://github.com/wtwt5237/perl6-for-bioinformatics/blob/master/Come%20on%2C%20sister/script/benchmark2.p6

最佳答案

从 2 个文件中一次读取 4 行并将它们处理成一个东西,可以使用 zip 轻松完成和 batch :

my @filenames = <file1 file2>;
for zip @filenames.map: *.IO.lines.batch(4) {
# expect ((a,b,c,d),(e,f,g,h))
}

这将继续生成,直到至少有一个文件被完全处理。 batch 的替代品是 rotor :当两个文件完全填满 4 行时,这将继续进行。完成循环的其他方法是同时指定 :partial带有 rotor 的标志, 并使用 roundrobin而不是 zip . YMMV。

关于raku - 需要在 Raku 中的每 n 行读取文本文件的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com