I have come across some code I can't work out and for which there is no provided explanation. I have tried! The code is in two parts and runs a computer health check. In the second block, what does the 'if not' line mean? (I'm not familiar with using a function name this way). The comments show what it does but, I'm interested in how it works. And on the same line, what is the meaning of the slash in parentheses?
#!/usr/bin/env python3
import requests
import socket
def check_localhost():
localhost = socket.gethostbyname('localhost')
return localhost == "127.0.0.1"
def check_connectivity():
request = requests.get("http://www.google.com")
return request == 200
#!/usr/bin/env python3
from network import *
import shutil
import psutil
def check_disk_usage(disk):
"""Verifies that there's enough free space on disk"""
du = shutil.disk_usage(disk)
free = du.free / du.total * 100
return free > 20
def check_cpu_usage():
"""Verifies that there's enough unused CPU"""
usage = psutil.cpu_percent(1)
return usage < 75
# If there's not enough disk, or not enough CPU, print an error
if not check_disk_usage('/') or not check_cpu_usage():
print("ERROR!")
elif check_localhost() and check_connectivity():
print("Everything ok")
else:
print("Network checks failed")
CodePudding user response:
not
in Python is the equivalent of !
in other languages; it's a negator. It returns true if the following statement is not true, and false otherwise.
At a guess, the /
in parentheses is referring to the root directory in a Unix filesystem.
So that line is saying, "If there's not enough disk space where root is, or not enough cpu, print an error." The two functions check_disk_usage(folder)
and check_cpu_usage()
return boolean true (meaning OK) or false (meaning not OK).