1 0 1 1

How to write the number of lines of an output in it's first line?

I am trying to add a line with the number of lines in the outputs I am generating with a loop for.

import os.path
import meshio
import pandas as pd
import numpy as np
import csv

cnt = 0
for file in os.listdir():
    if file.endswith(".vtu"):
        mesh =
        Sn = mesh.point_data['Sn']
        coordinates = mesh.points
        data = np.zeros((len(coordinates), 4))
        data[:, :3] = coordinates
        data[:, 3:4] = Sn
        dataframe = pd.DataFrame(data, columns=['X', 'Y', 'Z', 'Sn'], dtype=float)
        dataframe["ID"] = dataframe.index
        del Sn, mesh, data, coordinates

        ####### Gas Saturation #####
        gas_saturation = dataframe[dataframe['Sn'] > 0]
        del gas_saturation['X']
        del gas_saturation['Y']
        del gas_saturation['Z'] = 'Sn'

        n = gas_saturation['Sn'].count()

  cnt}.csv', sep=" ",index = False, header = False)
        cnt += 1

The variable n gives the number of lines I am interested in, but I don't know how can I add n before the first line of the outputs.

If anyone has any other suggestions to make that happen or optimize the code above, plz tell me.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

39.3k 77 11 27


This forum is dedicated to software developers utilizing Refinitiv APIs. Your question is about general programming in Python. It is off topic on this forum. In the future I suggest you post your question on appropriate thematic forums. E.g. this specific question would be better destined for Stackoverflow.

Nevertheless, if I understand correctly, you're looking to have the value of the variable named n as the first line in the CSV file you're creating at each iteration in the for loop that goes through the list of files with .vtu extension in a specific directory. Here's one way of achieving this:

n = gas_saturation['Sn'].count()

csv = gas_saturation.to_csv(sep=" ",index = False, header = False)
filename = f'D:/Bionapl_Nicolas/testKB/vtu_files/output_Sn/Sat_t{
with open(filename, 'w') as f:
    f.write(str(n) + '\n')
cnt += 1
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.