Python - Librerías Token & Tokenize
#20 ejemplos de cómo utilizar el módulo token en Python:
#1. Importar el módulo token:
import token
#2. Obtener una lista de todos los tokens en un archivo de Python:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.tokenize(f.readline)
print(tokens)
#3. Obtener una lista de todos los tokens en una cadena de Python:
import tokenize
codigo_fuente = "print('Hola, mundo!')"
tokens = tokenize.tokenize(codigo_fuente)
print(tokens)
#4. Obtener el valor numérico de un token:
import tokenize
tokens = tokenize.tokenize("x = 5")
valor = tokens[2][1]
print(valor)
########################################################
#5. Obtener el tipo de un token:
import tokenize
tokens = tokenize.tokenize("x = 5")
tipo = tokenize.tok_name[tokens[1][0]]
print(tipo)
#6. Obtener una lista de todos los nombres de tokens:
import tokenize
nombres_tokens = [tokenize.tok_name[i] for i in range(256)]
#7. Obtener una lista de todos los nombres de tokens que comienzan con 'NAME':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('NAME')]
#8. Obtener una lista de todos los nombres de tokens que comienzan con 'OP':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('OP')]
#9. Obtener una lista de todos los nombres de tokens que comienzan con 'STRING':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('STRING')]
#10. Obtener una lista de todos los nombres de tokens que comienzan con 'NUMBER':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('NUMBER')]
#11. Obtener una lista de todos los nombres de tokens que comienzan con 'NEWLINE':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('NEWLINE')]
#12. Obtener una lista de todos los nombres de tokens que comienzan con 'INDENT':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('INDENT')]
#13. Obtener una lista de todos los nombres de tokens que comienzan con 'DEDENT':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('DEDENT')]
#14. Obtener una lista de todos los nombres de tokens que comienzan con 'ENDMARKER':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('ENDMARKER')]
#15. Obtener una lista de todos los nombres de tokens que comienzan con 'COMMENT':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('COMMENT')]
#16. Obtener una lista de todos los nombres de tokens que comienzan con 'NL':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('NL')]
#17. Obtener una lista de todos los nombres de tokens que comienzan con 'ERRORTOKEN':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('ERRORTOKEN')]
#18. Obtener una lista de todos los nombres de tokens que comienzan con 'OP':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('OP')]
#19. Obtener una lista de todos los nombres de tokens que comienzan con 'ASYNC':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('ASYNC')]
#20. Obtener una lista de todos los nombres de tokens que comienzan con 'AWAIT':
import token
nombres_tokens = [name for name in token.tok_name.values() if name.startswith('AWAIT')]
##################################################################
#10 ejemplos de cómo utilizar el módulo tokenize en Python:
#1. Leer un archivo de código fuente en Python y convertirlo en una secuencia de tokens:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
for token in tokens:
print(token)
#2. Leer un archivo de código fuente en Python y convertirlo en una lista de tokens:
import tokenize
with open('archivo.py') as f:
tokens = list(tokenize.generate_tokens(f.readline))
print(tokens)
#3. Leer un archivo de código fuente en Python y contar el número de tokens:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
count = sum(1 for _ in tokens)
print(count)
#4. Leer un archivo de código fuente en Python y
#contar el número de tokens de un tipo específico (por ejemplo, identificadores):
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
count = sum(1 for token in tokens if token.type == tokenize.NAME)
print(count)
#5. Leer un archivo de código fuente en Python y obtener una lista de identificadores:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
identifiers = [token.string for token in tokens if token.type == tokenize.NAME]
print(identifiers)
#6. Leer un archivo de código fuente en Python y obtener una lista de cadenas de texto:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
strings = [token.string for token in tokens if token.type == tokenize.STRING]
print(strings)
#7. Leer un archivo de código fuente en Python y obtener una lista de números:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
numbers = [token.string for token in tokens if token.type == tokenize.NUMBER]
print(numbers)
#8. Leer un archivo de código fuente en Python y obtener una lista de operadores:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
operators = [token.string for token in tokens if token.type == tokenize.OP]
print(operators)
#9. Leer un archivo de código fuente en Python y obtener una lista de palabras clave:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
keywords = [token.string for token in tokens if token.type == tokenize.NAME and token.string in tokenize.keywords]
print(keywords)
#10. Leer un archivo de código fuente en Python y obtener una lista de comentarios:
import tokenize
with open('archivo.py') as f:
tokens = tokenize.generate_tokens(f.readline)
comments = [token.string for token in tokens if token.type == tokenize.COMMENT]
print(comments)