可能标题不是很清楚,我再细说一下。
我有一个 python 脚本可以打开一个 ppm 文件,应用一个选定的过滤器(旋转...)并创建一个新图片。直到这里一切正常。
但我想通过 linux 控制台做同样的事情:
ppmfilter.py ROTD/path/imageIn.ppm/path/imageOut.ppm
这里的 ROTD 是应用旋转的函数的名称。
我不知道该怎么做,我正在寻找一个允许我这样做的库。
期待您的帮助。
附言:我使用的是 python 2.7
请您参考如下方法:
有一个比较简单的方法:
您可以使用“globals()”确定全局名称(函数、变量等)。这为您提供了所有全局符号的字典。您只需要检查类型(使用 type() 和模块类型),如果它是一个函数,您可以使用 sys.argv 调用它:
import types
import sys
def ROTD(infile, outfile):
# do something
if __name__ == '__main__':
symbol = globals().get(sys.argv[1])
if hasattr(symbol, '__call__'):
symbol(*sys.argv[2:])
这会将程序参数(不包括文件名和命令名)传递给函数。
编辑:请不要忘记错误处理。为了清楚起见,我省略了它。
