Table des matières
Snippets python #
Obtenir un item aléatoire d'une liste #
import random
random.choice['a','b','c']
Hash md5 d'un fichier #
def get_hash(name):
readsize = 64 * 1024
with open(name, 'rb') as f:
data = f.read(readsize)
f.seek(-readsize, os.SEEK_END)
data += f.read(readsize)
return hashlib.md5(data).hexdigest()
Texte aléatoire #
def randomtext(n):
# stackoverflow.com/questions/2257441
# /random-string-generation-with-upper-case-letters-and-digits-in-python/23728630#23728630
txt = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(n))
return txt
which #
def which(program):
#https://stackoverflow.com/questions/377017/test-if-executable-exists-in-python/377028#377028
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
fpath, fname = os.path.split(program)
if fpath:
if is_exe(program):
return program
else:
for path in os.environ["PATH"].split(os.pathsep):
path = path.strip('"')
exe_file = os.path.join(path, program)
if is_exe(exe_file):
return exe_file
return None
Capturer CTRL-C #
x = 1
while True:
try:
print x
time.sleep(.3)
x += 1
except KeyboardInterrupt:
print "Bye"
sys.exit(0)
Vérifier que l'on est connecté à internet #
def check_connectivity():
"""
check if internet access
#https://stackoverflow.com/questions/3764291/checking-network-connection
"""
try:
request.urlopen("http://www.openbsd.org", timeout=10)
return True
except Exception as e:
print(e)
return False
Equivalent à tail -f #
def tail(filename):
if not os.path.isfile(filename) :
return
# Watch the file for changes
stat = os.stat(filename)
size = stat.st_size
mtime = stat.st_mtime
while True:
time.sleep(0.5)
stat = os.stat(filename)
if mtime < stat.st_mtime:
mtime = stat.st_mtime
with open(filename, "rb") as f:
f.seek(size)
lines = f.readlines()
ul = [ u.decode() for u in lines ]
yield("".join(ul).strip())
size = stat.st_size