无法将参数传递给 os.system()

Trouble passing arguments into os.system()

我想 运行 一个 python 脚本 5 次。每个 运行 的输出是一张图像,我想在最后保存 5 张图像。为此,我使用 os.system() 命令,但最终出现以下错误:

TypeError: system() takes at most 1 argument (3 given)

这是我的代码:

import os
i = 1

    while i < 6:
        run = os.system ('python main.py', 'input laska.png', 'output laska_save' + str(i) + '.png')
        i = i + 1

不确定这里的问题可能是什么。我基本上希望输出参数为 laska_save1, laske_save2 ... laska_save5。增量发生 5,每次在调用脚本 运行s 之后发生一次。

感谢任何指导。

您应该只用一个字符串调用它,如下所示:

os.system('python main.py input laska.png output laska_save{}.png'.format(i))

os.system documentation 说它只接受一个字符串作为参数,所以你必须在将它传递给函数之前用命令创建完整的字符串。

只需将字符串格式化为您在 cmd 提示符下键入的命令。 例如: 如果 test.py 是一个接受输入文件 file.csv 的脚本,那么代码将是

os.system("python {0} {1}".format(test_filepath,file.csv_filepath))

如果您的 main.py 使用两个参数输入文件 (laska.png) 和输出文件的名称,那么您的 while 循环将包含:-
os.system('python main.py laska.png laska_save{}.png'.format(i))