python - 如何通过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 更改此脚本??
解决方案
您可以使用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')
推荐阅读
- c# - 反序列化协议缓冲区c ++中的字符串数组
- bash - CircleCI 2.0 -> /bin/bash: bash: command not found
- c# - 从 JSON 中提取第一个元素
- javascript - 更改响应式数据表中的输入值
- php - $_SESSION:未定义索引
- php - 如何使用类函数和init文件获取redis键值
- node.js - big-react-calendar:'未捕获的类型错误:无法读取未定义的属性'momentLocalizer'
- json - 如何将 NSArray 存储在 Userdefaults 中?
- hadoop - 数据节点故障后 hdfs 恢复
- python - 从Python中的对象属性获取对象