将字符串附加到 Python 中子进程中的变量

Appending a string to a variable within subprocess in Python

我正在尝试构建一个 Python 脚本包装器来循环和 运行 另一个名为 meioc 的 python 脚本针对目录中的每个文件。

基本上我有一些旧的 .eml / MIME 编码文件,我用它来分析 headers 并使用 meioc.py.

构建每个 .eml 的摘要

现在我正试图将这个包装器脚本组合在一起,以针对目录中的所有 .eml 调用 meioc.py。它主要工作,但我挂断了 meioc 输出的 -o Output 参数。

这是meioc.py的参数选项;

meioc.py
usage: meioc.py [-h] [-x] [-s] [-o FILE_OUTPUT] [-v] filename
meioc.py: error: the following arguments are required: filename

这是我正在编写的脚本,可让 meioc.py 循环遍历整个目录;

# import required module
import os
import meioc 
# assign directory
directory = 'D:/eml_dir'
 
# iterate over files in
# that directory
for filename in os.listdir(directory):
    f = os.path.join(directory, filename)


    # checking if it is a file
    if os.path.isfile(f):
        #print(f)

                
        import subprocess
        meioc_cmd = ['python', 'meioc.py', '-o', (f), (f)]
        subprocess.call(meioc_cmd)

我快到了,但我想要的是让输出文件成为 -o (f).txt ,但是我在附加 .txt 时遇到了麻烦到这个变量。

meioc_cmd = ['python', 'meioc.py', '-o', (f)如何在此处添加.txt?, (f)]

如果您正在使用 python 3,您可以像 f"{f}" 一样使用 f-strings。这会将变量插入到您的字符串中。

如果你使用的是python 2,你可以"{}".format(f)

meioc_cmd = ['python', 'meioc.py', '-o', f"{f}", f"{f}"]

meioc_cmd = ['python', 'meioc.py', '-o', "{}".format(f), "{}".format(f)]