从Linux控制台运行一个函数(来自.py文件)

Alp*_*gut 1 python console ppm

也许标题不是很清楚,让我详细说明.

我有一个python脚本打开一个ppm文件,应用一个选定的过滤器(旋转...)并创建一个新的图片.直到这里一切正常

但我想通过Linux控制台做同样的事情:

ppmfilter.py ROTD /path/imageIn.ppm /path/imageOut.ppm

这里ROTD是应用旋转的函数的名称.

我不知道该怎么做,我正在寻找一个允许我这样做的图书馆.

期待着你的帮助.

PS:我正在使用python 2.7

ter*_*nus 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:])
Run Code Online (Sandbox Code Playgroud)

这会将程序参数(不包括文件名和命令名)传递给函数.

编辑:请不要忘记错误处理.为了清楚起见,我省略了它.