python - 对目录中的每个文件执行相同的命令

标签 python bioinformatics

我希望在构建 python 脚本时获得基本帮助,该脚本用于获取目录中的每个文件并在每个文件上执行相同的任务。我有大量蛋白质文件(FASTA 格式),而我使用的程序仅允许一次搜索约 500 个条目。因此,我需要使用各种选项分别为 116 个文件运行该程序,例如“-N”和“-t 0.800”。我寻求帮助,我知道我必须导入操作系统等,但我从未使用过这些类型的系统命令并且迷失了。如有任何帮助,我们将不胜感激!

最佳答案

import subprocess
for fname in list_of_files:
    r = subprocess.call(('your_command_here', '-N', '-t', '0.800', fname))

subprocess.call 将运行您的命令,等待它完成并返回退出代码(上面称为 r)。

subprocess 非常强大。您可以阅读更多相关信息here .

更新:我从问题中假设您有一个文件列表。如果没有,也很容易获得一份 list 。例如,如果您的文件都有扩展名 .blah,则使用:

from glob import glob
list_of_files = glob('*.blah')

Python 模块 glob 接受所有常见的 shell 样式通配符。

关于python - 对目录中的每个文件执行相同的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21326704/

相关文章:

python - 如何修复Python中的 'ImportError: dynamic module does not define module export function (PyInit_cv2)'错误?

python - 如何在python中将时间转换为T Z格式

python - 无法将线程追加到数组

ascii - 在 Julia 中,如何将 ASCII 十进制列表转换为字符串?

linux - 在 Linux 上安装 MRBAYES 3.2

python - 对于从 Python 向网站发送请求有什么建议吗?

python - 使用Python重命名目录中的所有文件

python - 如何使用 df.itertuples() 中的 Namedtuple Pandas 启用 row[col_name] 语法

python - Pandas 数据框按多列分组并删除重复行

python - Biopython 可以执行 Seq.find() 解释歧义代码吗