如果程序在Mac OS中运行,脚本中的os.system("color")会导致麻烦吗?



我有一组Python文本分析程序。我希望菜单和选择的终端输出是在各种颜色。我通过在开始时包括os.system("color")并使用ANSI代码(如代码片段所示)使其按预期工作。我的理解是,这些代码是原生的其他操作系统,但如果我包括os.system("color"),程序会崩溃在Mac上吗?如果是这样,我可以使用错误捕获例程来防止它吗?

CLR = {
"M": "33[95m",
"B": "33[94m",
"G": "33[92m",
"R": "33[91m",
"Y": "33[93m",
"C": "33[96m",
"NO": "33[0m",}
print(CLR["M"], "Testing Magenta!!", CLR["NO"])
print(CLR["B"], "Testing Blue!!", CLR["NO"])
print(CLR["G"], "Testing Green!!", CLR["NO"])
print(CLR["R"], "Testing Red!!", CLR["NO"])
print(CLR["Y"], "Testing Yellow!!", CLR["NO"])
print(CLR["C"], "Testing Cyan!!", CLR["NO"])

通常可以用try/catch块捕获异常/错误,但是os.system永远不会抛出异常,只要你提供一个字符串,即使字符串不包含有效的命令。

而不是尝试如果os.system('color')工作,然后捕获错误,你可以在调用任何东西之前检查用户正在运行的操作系统。这可以通过sys.platform:

来完成
import os, sys 
if sys.platform == "win32":
os.system('color')
elif sys.platform == "linux" or sys.platform == "linux2":
# Linux specific stuff
elif sys.platform == "darwin":
# MacOS specific stuff

最新更新