Я пытаюсь создать сценарий командной строки, который может обрабатывать различные команды. код я сделал до сих пор выглядит следующим образом:Изменение переменных глобальных переменных в командной строке параметров в Python
#Globals
SILENT = False
VERBOSE = True
EXIT_SUCCESS = 0
EXIT_USAGE = 1
EXIT_FAILED = 2
def helpFunc():
"""
This will print out a help text that describes the program to
the user and how to use it
"""
print("############################\n")
print("Display help \n-h, --help\n")
print("Current version \n-v, --version\n")
print("Silent \n-s, --silent\n")
print("Verbose\n --version\n")
def versionFunc():
"""
This will show the current version of the program
"""
print("Current version: \n" + str(sys.version))
def ping(url):
"""
Will ping a page given the URL and print out the result
"""
rTime = time.ctime(time.time())
if VERBOSE == True:
print(rTime)
print(url)
def pingHistory(arg):
"""
Will show the history saved from past pings
"""
def parseOptions():
"""
Options
"""
try:
opt, arg = getopt.getopt(sys.argv[1:], "hvs", ['help', 'version', 'silent', 'verbose', "ping="])
print("options: " + str(opt))
print("arguments: " + str(arg))
for opt, arg in opt:
if opt in ("-h", "--help"):
helpFunc()
elif opt in ("-v", "--version"):
versionFunc()
elif opt in ("-s", "--silent"):
VERBOSE = False
SILENT = True
elif opt in ("--verbose"):
VERBOSE = True
SILENT = False
#Send to ping funct
if len(arg) > 0:
if arg[0] == "ping":
ping(arg[1])
else:
helpFunc()
except getopt.GetoptError as err:
# will print something like "option -a not recognized",
# easier to se what went wrong
print(err)
sys.exit(EXIT_USAGE)
def main():
"""
Main function to carry out the work.
"""
from datetime import datetime
parseOptions()
sys.exit(EXIT_SUCCESS)
if __name__ == "__main__":
import sys, getopt, time, requests
main()
sys.exit(0)
Теперь я хочу использовать глобалов Сайлент и VERBOSE изменить другой вывод программы будет делать. Поэтому, если мне нравится писать -s ping dbwebb.se, я хочу, чтобы программа пропускала часть в функции ping, которая выводит время. Но по какой-то причине я не могу сохранить изменения, которые я делаю для глобальных переменных, потому что каждый раз, когда я запускаю программу и записывает -s, программа по-прежнему считает, что SILENT является ложным.