Preguntas frecuentes en Python

Tutorial | Aprender Python

¿Cómo obtener la ruta actual en python?

Usando el módulo os

import os
print(os.getcwd())

[201]

¿Cómo unir un path?

import os
print(os.path.join("usuario/archivos", "documento.txt"))

¿Qué librerias usar para manipular imagenes?

[204, 205]

¿Cómo encriptar un archivo?

Usando el AES

[208,209,207,206]

Ejemplo fernet

In [154]:
# https://cryptography.io/en/latest/fernet/
from cryptography.fernet import Fernet
key = Fernet.generate_key()
# key = b'wMMR6A25Mos2L3lp0EFfl5eMR24ozQuTaVNPTgFPjbk='
print(type(key),key)
f = Fernet(key)
token = f.encrypt(b"hola mundo")
print(token)

f.decrypt(token)
<class 'bytes'> b'b4f-d01f8U2-rAhsC5hKgiO-LZfF9RIJvJlPayU8BG8='
b'gAAAAABe2TgGhybuuWJqmOnpzsrBCRWVw1Fub1LehJTF8__Q7S04LLINAcAhx07hRqzrR2edOEg-BVyxILtffOsJpVPUqXz2PQ=='
Out[154]:
b'hola mundo'

Ejemplo usando AES:

In [155]:
import json
from base64 import b64encode
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

data = b"hola"
key = get_random_bytes(16)
print(type(key),key)
#key = b'12345678901234561234567890123456'
print(type(key),key)
cipher = AES.new(key, AES.MODE_CTR)
ct_bytes = cipher.encrypt(data)
nonce = b64encode(cipher.nonce).decode('utf-8')
ct = b64encode(ct_bytes).decode('utf-8')
result = json.dumps({'nonce':nonce, 'ciphertext':ct})
print(result)
<class 'bytes'> b'\xdc&X\xd9\x1f6#\xed\x9e\\\x9e\xb2\xfb\xc6`W'
<class 'bytes'> b'\xdc&X\xd9\x1f6#\xed\x9e\\\x9e\xb2\xfb\xc6`W'
{"nonce": "SeN8f9ef0gk=", "ciphertext": "/X6jDw=="}
In [156]:
import json
from base64 import b64decode
from Crypto.Cipher import AES
# We assume that the key was securely shared beforehand
try:
    b64 = json.loads(result)
    nonce = b64decode(b64['nonce'])
    ct = b64decode(b64['ciphertext'])
    cipher = AES.new(key, AES.MODE_CTR, nonce=nonce)
#     cipher = AES.new(key, AES.MODE_CTR)
    pt = cipher.decrypt(ct)
    print("The message was: ", pt)
except :
    print("Incorrect decryption")
The message was:  b'hola'

¿Cómo saber si un elemento de una lista esta en otra usando programación funcional?

In [224]:
l1 = [1,2,3,4]
l2 = [10,11,2]
r=map(lambda x: x+1,l1)
for x in r:
    print(x)
2
3
4
5

¿Leer un archivos en formato binario?

Podemos leer un archivo en formato binario de la siguiente manera:

In [29]:
with open("in1.txt","rb") as archivo:
    t = b''
    for x in archivo.readlines():
        print(x)
        t += x
    print(type(t),t)
b'ejemplo in1.txt\n'
b'Hola mundo!!\n'
<class 'bytes'> b'ejemplo in1.txt\nHola mundo!!\n'

¿Cómo levantar un entorno virtual de python 3?

Seguir los siguientes pasos

$ sudo su
$ pip3 install virtualenv
$ virtualenv -p python3 env3
$ source env3/bin/activate

[210]

¿Cómo instalar los requerimientos en python?

$ pip install -r requirements.txt

¿Que ORM existen para Python?

Para base de datos NoSQL tenemos:

  • Pymongo (MongoDB) [211]

¿Cómo subir tu propio paquete a PyPi?

Mayor detalle lo encontramos en:

[213,214]

¿Cómo comentar un código en Python?

Ejemplos podemos tener en

Tutorial | Aprender Python