[ Foro de Python ]

python termina script sin marcar algun error

21-Apr-2020 16:44
Invitado (rodrigo)
0 Respuestas

Buen dia, soy nuevo con python, tengo un problema tengo un script que termina inesperadamente y no manda ningun error ni nada, ya coloque el fragmento de codigo entre un try:, except, pero nada

incluso he ejecutado el codigo con ipython y tampoco nada, ningun error ni nada que puedo hacer?

tambien tengo la duda aunque acabo de instalar python me indica a cada rato que me falta el modulo django esto por que??

de antemano gracias por su atension a nota el segmento de codigo que falla estaba asi:

print("validar")
data_frame.to_excel("nombreexcel.xlsx")
print("ya no ejecuta, aqui termina")

lo coloque como:

try:
   print("validar")
   data_frame.to_excel("nombreexcel.xlsx")
except Exception as e:
  print(e)
print("ya no ejecuta, aqui termina")

Pero aun asi solo ejecuta hasta "validar"

lo queanterior es un ejemplo lineas atras se carga data_frame con un data frame valido de pandas, de echo si coloco codigo
similar en un archivo aparte funciona perfectamente, pero en este escrip solo termina ahi y no ejecuta nada mas..

ya tiene horas que descarte que el problema sea pandas, por ello el titulo del problema es: python termina script sin marcar algun error
de echo he comentado esa seccion y un par de lineas adelante vuelve a terminar sin ninguna razon

no hay ningun try, except, else, finally o algo que me indique que pasa.

Por ello les pido el apoyo, por si alguien sabe que ocurre, no pongo todo el codigo porque es mucho y en teoria no tiene nada de especial, hay un def que es llamado del modulo principal y la ejecucion termina en lo que puse de ejemplo, de echo dentro del def no parece tener nada especial, es este:

def get_customers_info_from_xlsx(self):
def concat_emails(mails):
return ', '.join([v for _, v in mails.dropna().iteritems()])

emails_df = self.email_rfc_df
cp_emails_df = emails_df.copy(deep=True)
emails_df.replace([0, 'NA', 'N/A', ' ', np.nan], 'error', inplace=True)
list_dfs = []

for c in self.email_columns:
temp = emails_df[['rfc', c]]
temp[c].apply(lambda v: v.lower())
condition = temp[c].str.match(r'(.{1,})@(.{1,}).(.{1,})')

list_dfs.append(temp.loc[condition])

emails_df = pd.concat(list_dfs, axis=1)
emails_df = emails_df.loc[:,~emails_df.columns.duplicated()]
emails_df = emails_df.assign(emails=emails_df[self.email_columns].apply(concat_emails, axis=1))

invalid_emails_df = cp_emails_df[~cp_emails_df.rfc.isin(emails_df.rfc)]
print('ejecuta hasta aqui')
invalid_emails_df.to_excel('CorreosIncorrectos.xlsx', index=False)
print('no ejecuta')
rfc_emails = emails_df[['rfc', 'emails']].to_dict('split')['data']
return {d[0]: d[1] for d in rfc_emails}, emails_df


la variable emails_df si trae el dataframe valido con informacion, la variable self.email_columns tambien trae informacion




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)