Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can not do it. .out is a binary file, you can not open with excel, notepad or any program different that PSSE.

PSSE has a tool to export the data to excel file.

Regards, Waltter

click to hide/show revision 2
Add a example to export to excel

You can not do it. .out is a binary file, you can not open with excel, notepad or any program different that PSSE.

PSSE has a tool to export the data to excel file.

Regards, Waltter

EDITED Example to export to excel

import os
import sys
import numpy as np

# Ajustamos las variables de entorno para el PSSE
sys.path.insert(0,r"C:\Archivos de programa\PTI\PSSE33\PSSBIN")
os.environ['PATH'] = r"C:\Archivos de programa\PTI\PSSE33\PSSBIN" + ";" + os.environ['PATH']
import excelpy
import dyntools

# Para la información de las frecuencias
contingenciaf = ["Contingencia"]
nodos = ["nodo"]
nfmin = ["fmin"]
nfmax = ["fmax"]
nffinal = ["ffinal"]

"""
Comienza a extraer la información para cada uno de los *.out
"""
OutNames = [Out1, Out2]
Ruta = os.getcwd()


for OutName in OutNames:
    rootDir = Ruta + "\\"
    logFile = file(rootDir + "Reporte_" + OutName + "_Din.txt", "w")
    logFile1 = file(rootDir + "Errores_" + OutName + "_Din.txt", "w")
    sys.stdout = logFile  # Las salidas
    sys.stderr = logFile1  # Los errores

    outFile = dyntools.CHNF(OutName + ".out")

    #Extrae información del archivo *.out
    short_title, chanid_dict, chandata_dict = outFile.get_data()

    # Datos de las frecuencias
    freq_chanList = range(51, 62)
    for freqchan in freq_chanList:
        frecuencia = np.add(np.multiply(np.array(chandata_dict[freqchan]), 60), 60)
        nfmin.append(frecuencia.min())
        nfmax.append(frecuencia.max())
        nffinal.append(frecuencia[len(frecuencia) - 1])
        nodos.append(chanid_dict[freqchan])
    for n in range(1,(len(freq_chanList) + 1)):
        contingenciaf.append(OutName)

    logFile.close()
    logFile1.close()

""" Crea los reportes en formato csv """
reporte = Ruta + '\\' + u'InfoDinámica.xlsx'
xl = excelpy.workbook(xlsfile=reporte, sheet="Frecuencia",
                              overwritesheet=True, mode='w')
xl.show_alerts(False)

# Reporte de Frecuencias
xl.worksheet_add_end(sheet="Frecuencia")
xl.set_range(1, 'a', zip(contingenciaf))
xl.set_range(1, 'b', zip(nodos))
xl.set_range(1, 'c', zip(nfmin))
xl.set_range(1, 'd', zip(nfmax))
xl.set_range(1, 'e', zip(nffinal))

xl.save(reporte)
xl.close()