首页 > 解决方案 > 如何通过python循环执行linux命令

问题描述

我有一个文件列表,这些文件将被另一个 linux 脚本用来提取,如下所示:

gzip -dc input/test_log.gz | bin/recreate state/object_mappings.sort > output/recreate.out

我需要test_log.gz使用 python 循环的文件列表更改名称,如何动态执行此脚本。这是我的代码:

import os
from subprocess import call

files = os.listdir("/my directory/")
files.sort()
for i in files:
    call('gzip -dc input/test_log.gz | bin/recreate state/object_mappings.sort > output/recreate.out')

我不知道如何使用动态变量 i 更改此脚本??

标签: pythonlinuxshell

解决方案


您可以使用f-string文字:

import os
from subprocess import call

files = os.listdir("/my directory/")
files.sort()
for file in files:
    call(f'gzip -dc {os.path.abspath(file)} | bin/recreate state/object_mappings.sort > output/recreate.out')

推荐阅读