用调用参数在bash中“翻译”字符串?使用以下python脚本

时间:2018-09-18 09:54:28

标签: python bash

#!/usr/bin/python3

import argparse

vokaler = "aouåeiyäöAOUÅEIYÄÖ"
konsonanter = "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ"

def viskspraket(text):
    """Removes all vowels from the sentence"""
    return "".join([x if x not in vokaler else "" for x in text])

def rovarspraket(text):
    """Consonants are doubled and "o" is put inbetween them"""
    return "".join([x + "o" + x if x in konsonanter else x for x in text])

parser = argparse.ArgumentParser()
parser.add_argument("-r", help="rovarspraket", action="store_true")
parser.add_argument("-v", help="viskspraket", action="store_true")
args = parser.parse_args()
textFromTerminal = input()

print(textFromTerminal)

if args.r:
    print(rovarspraket(textFromTerminal))

elif args.v:
    print(viskspraket(textFromTerminal))

在我的作业中,练习的一部分是使用以下命令从bash终端执行此python脚本:

$ echo "The landlubbers are trying to sink us with their canons." |./translation.py -r

其中“ -r”是我在标题中提到的调用参数。我已经弄清了问题的这一部分,并从bash运行它。 但是问题的下一部分是,我应该从bash终端翻译已经翻译的字符串,例如“ viskspraket”,而无需复制和粘贴翻译后的字符串。

translation.py文件中包含更多功能,应该能够在所有功能之间自由转换而无需复制和粘贴,但是我认为两个功能足以说明问题。

因此,例如,-r -v或类似的名称应首先将字符串转换为“ rova​​rspra​​ket”,然后将其转换为字符串,然后使用“ viskspraket”再次进行翻译。

由于总共有五个函数(文件中现在仅显示两个),所以使用类似以下内容:

parser.add_argument("-rv", help="rovarspraketToviskspraket", action="store_true")

elif args.rv:
    print(viskspraket(rovarspraket(textFromTerminal))

对于所有可能的翻译,由于组合太多,因此实际上并不可行。所以我的问题是: 我将如何去做呢?一般来说,我对bash经验不足。我也为瑞典的函数名称表示歉意,但我还是希望这很清楚。

0 个答案:

没有答案