如何避免为同一命令但输入不同而创建多个功能?

时间:2019-02-21 01:19:04

标签: python

我有一个反复运行的可执行文件,称为“ a”,可以用许多参数调用它。我正在考虑为其定义不同的功能,然后像下面这样在main中调用它。一个命令的输出将成为下一个命令的输入。以编程方式是对的吗?我知道它会起作用。

var i = "https://example.com/?id\u003dg596c2f91a67e518\u0026itag\u003d18\u0026source\u003dtest";

console.log(unescape(JSON.stringify(i)));

1 个答案:

答案 0 :(得分:1)

好吧,假设我现在了解了您想要的内容,您想从引号中删除传递的参数(已经是字符串)

您还需要在元素之间留一个空格

我也简化了一些代码

def d(x, z):    
    return ' '.join(['a', x , '-m', '1', '-d', '-g', '5', '-o', z])

def e(x, z):    
    return ' '.join(['a', x, '-m', '1', '-d', '-p', 'in', '-o', z])

def f(x, z):    
    return ' '.join(['a', x, '-m', 'side', '-d', '-y','-p', 'in', '-o', z])


def main():

    result1 = subprocess.call(d('in.txt', 'w1'))

    result2 = subprocess.call(e('w1', 'w2'))

    result3 = subprocess.call(f('w2', 'w3'))    

if __name__ == '__main__':
    main()

编辑:我认为这不会更好,但是如果您有很多选择,也许您可​​以从中进行改进并加以改进(或者其他人可以提出更好的建议):

def generate_line(x, z, flag):    
    flags = {'d':('1',('-g','5')), 'e':('1',('-p','in')),'f':('side',('-y','p','in'))}
    aa,bb = flags[flag]
    l = ' '.join(['a', x , '-m', aa, '-d', *bb, '-o', z])
    return l

def main():
    result1 = print(generate_line('in.txt', 'w1','d'))
    result2 = print(generate_line('w1', 'w2','e'))
    result3 = print(generate_line('w2', 'w3','f'))