Articles of excepción de

Python: la captura de una excepción funciona fuera de una función pero no dentro de una función

Tengo un problema extraño que no puedo resolver yo mismo. Si ejecuto outside_func.py en dos terminales separados, la segunda ejecución detecta la excepción BlockingIOError y se imprime el mensaje: outside_func.py import fcntl import time # Raise BlockingIOError if same script is already running. try: lockfile = open(‘lockfile’, ‘w’) fcntl.flock(lockfile, fcntl.LOCK_EX | fcntl.LOCK_NB) except BlockingIOError: print(‘Script […]

¿Cuál es el punto de reenviar excepciones?

Así que he visto una mención en otra parte del uso de lo siguiente para volver a generar una excepción. try: whatever() except: raise ¿Cuál es el propósito de reenviar una excepción? ¿Seguramente una excepción no capturada solo subirá a la cima de todos modos? es decir: try: int(“bad”) except: raise tiene salida idéntica a: […]

Leyendo datos de un archivo de texto especialmente formateado

Estoy utilizando este método, sugerido amablemente por Ashwini Chaudhary, para asignar datos a un diccionario desde un archivo de texto en un formato específico. keys = map(str.strip, next(f).split(‘Key\t’)[1].split(‘\t’)) words = map(str.strip, next(f).split(‘Word\t’)[1].split(‘\t’)) El archivo de texto tiene el título de la fila seguido de valores, separados por un carácter \t . Ejemplo 1: Key a […]

¿Por qué los flotadores NumPy no dan ZeroDivisionError?

Me di cuenta de que en el código: import numpy as np a = 0.0 print a / a b = np.array( [0.0] ) print b[0] / b[0] la primera función de impresión lanza un ZeroDivisionError, pero la segunda genera nan . Soy consciente de que type(b[0]) es numpy.float64 , mientras que type(a) es float […]

Continuar después de boost la excepción en iterador / generador en Python

¿Hay alguna manera en Python para continuar la iteración después de la excepción lanzada por el iterador / generador? Al igual que en el código siguiente, ¿hay alguna forma de omitir ZeroDivisionError y continuar en bucle a través de gener() sin modificar la función run() ? def gener(): a = [1,2,3,4,0, 5, 6,7, 8, 0, […]

¿Una forma pythonica de “reanudar el próximo” en excepciones?

El problema: estoy leyendo una serie de archivos de entrada heterogéneos. Escribí una clase de lector para cada uno de ellos, que lee el archivo usando __init__(self, file_name) , y lanza una excepción en caso de una entrada mal formada. El código se ve así: clients = Clients (‘Clients.csv’ ) simulation = Simulation (‘Simulation.csv’ ) […]

¿Qué haría que WordNetCorpusReader no tuviera ningún atributo LazyCorpusLoader?

Tengo una función corta para verificar si una palabra es una palabra real comparándola con el corpus de WordNet del Natural Language Toolkit. Estoy llamando a esta función desde un hilo que valida los archivos txt. Cuando ejecuto mi código, la primera vez que se llama a la función lanza un AttributeError con el mensaje […]

¿Por qué las excepciones son iterables?

Me ha mordido algo inesperado recientemente. Quería hacer algo así: try : thing.merge(iterable) # this is an iterable so I add it to the list except TypeError : thing.append(iterable) # this is not iterable, so I add it Bueno, funcionó bien hasta que pasé un objeto heredado de Exception que se suponía que debía agregarse. […]

En Python, ¿hay una manera de saber si un objeto “implementa una interfaz” antes de pasarlo a una función?

Sé que esto puede sonar como una pregunta estúpida, especialmente para alguien que conoce la naturaleza de Python, pero me preguntaba: ¿hay alguna forma de saber si un objeto “implementa una interfaz” para decir? Para dar un ejemplo de lo que quiero decir: digamos que tengo esta función: def get_counts(sequence): counts = {} for x […]

¿Cómo puedo encontrar una lista de todas las excepciones que una función de biblioteca determinada lanza en Python?

Lo siento por el título largo, pero parece más descriptivo para mi pregunta. Básicamente, estoy teniendo dificultades para encontrar información de excepción en la documentación oficial de python. Por ejemplo, en un progtwig que estoy escribiendo actualmente, estoy usando la función de movimiento de shutil libary: from shutil import move move(‘somefile.txt’, ‘/tmp/somefile.txt’) Eso funciona bien, […]