gpt4 book ai didi

python - 通过 Python 脚本中的 -cat 连接文件

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:00 25 4
gpt4 key购买 nike

我有一个充满文件的文件夹,其名称如下所示:

"Code1_B1_1.1.fq.gz"
"Code1_B1_2.2.fq.gz"
"Code1_B2_1.1.fq.gz"
"Code1_B2_2.2.fq.gz"
...
"Code5_B1_1.1.fq.gz"
"Code5_B1_2.2.fq.gz"
"Code5_B2_1.1.fq.gz"
...
...

等等

这些是 DNA 序列。我想根据代码号和扩展名连接这些文件。因此,例如,我的文件“Code1_B1_1.1.fq.gz”和“Code1_B2_1.1.fq.gz”将合并为一个“Code1_both_1.1.fq.gz”。

使用 bash(作为新手),我发现了如何列出我需要连接的文件,例如:

ls | grep -E "Code1.*.1.1.fq.gz"

但是之后我怎样才能连接它们呢?我想简单地使用命令 -cat 并将输出保存到新文件中,但是如何检索能够使用 -ls 列出的文件?

...最终,我想通过 Python 脚本执行整个操作,该脚本将根据我的两个标准(代码和扩展名)自动合并所有文件:)

预先感谢您的帮助!

克里斯

最佳答案

ls 输出供人类使用,而不是编程消费;请参阅Why you shouldn't parse the output of ls .

相反,请使用 glob expression形成文件名列表:

zcat Code1*1.1.fq.gz >outfile

...或者...

gunzip -c Code1*1.1.fq.gz >outfile

如果您出于某种原因需要引用此名称的部分内容,只要引用*(或任何其他全局变量)就可以这样做。表达式元字符):

gunzip -c "Code1"*"1.1.fq.gz"

请注意,glob 表达式与正则表达式有点不同:在正则表达式中,. 是一个特殊字符 - 所以 grep -E "Code1.*.1.1.fq.gz" 也会将 Code1AB1C1DfqEgz 匹配为有效名称,因为表达式中的每个 . 都会以这种方式处理。在 glob 中,. 并不特殊,* 表示零个或多个任意值(与零个或多个最后一个值相反)东西)

关于python - 通过 Python 脚本中的 -cat 连接文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45283392/

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