如何从 Python 脚本调用应用程序

How to call an application from a Python script

我想使用 Python 脚本更改输出文件名,然后执行图像处理任务。但是,我收到此错误:

> unindent does not match any outer indentation level

这是我的代码:

#!/usr/bin/env python
import glob
import os

files=glob.glob("*.hdr")
for file in files:
    new_file = file.replace("hdr","exr")
    print(new_file)

 os.system("pfsin %s | pfsoutexr --compression NO %s" (file, new_file))

Python 关心缩进 - 我相信你想要这个:

files=glob.glob("*.hdr")
for file in files:
    new_file = file.replace("hdr","exr")
    print(new_file)

    os.system("pfsin %s | pfsoutexr --compression NO %s" % (file, new_file))

此外,请注意,我相信您在 --compression NO %s" % (file, new_file) 中遗漏了 %(这就是为什么您会收到“'str' 对象不可调用”错误的原因)。 % 符号是字符串格式运算符 - 请参阅 this answer.

的第二部分

注意 os.system() 调用之前的额外空格。如果你换一种方式:

files=glob.glob("*.hdr")
for file in files:
    new_file = file.replace("hdr","exr")
    print(new_file)

os.system("pfsin %s | pfsoutexr --compression NO %s" % (file, new_file))

我相信它不会 运行 - new_filefor 循环之外的 os.system 调用不可用。