Я хочу извлечь данные из текстовых файлов в CSV-файл, используя python - PullRequest
0 голосов
/ 25 января 2020

Я хочу извлечь все данные текстовых файлов в CSV-файлы и должен построить графики в python. Я знаю, как читать файл, строки, убирая лишние пробелы в python, но я не знаю logi c для извлечения данных из входных файлов в выходной файл. Я прилагаю изображения структуры входного файла, CSV-файл требуемого формата вывода, а также я прилагаю свой код. Любое предложение по улучшению кода приветствуется. Спасибо, ребята.

input.txt

# started on Thu Jan 23 21:03:30 2020

Performance counter stats for './a.out in_5K.fluid in_100K.fluid --verbose':

     13.677360      task-clock (msec)         #    0.987 CPUs utilized          
             0      context-switches          #    0.000 K/sec                  
             0      cpu-migrations            #    0.000 K/sec                  
         1,062      page-faults               #    0.078 M/sec                  
   5,86,68,441      cycles                    #    4.289 GHz                    
  17,13,37,074      instructions              #    2.92  insn per cycle         
   3,14,80,047      branches                  # 2301.617 M/sec                  
        26,042      branch-misses             #    0.08% of all branches        

   0.013853468 seconds time elapsed

required_output_format.csv

instructions,task-clock (msec),context-switches,cpu-migrations,page-faults,cycles,branches,branch-misses
171337074,13.677360,0,0,1062,58668441,31480047,26042

Мой код пока:

file = open("input.txt")
lines = file.readlines()

count = 1
for line in lines:
    line=line.strip()
    if(count>=6 and count <=13 ):
        words = line.split('#')
        data = words[0].strip().split(" ")
        value=""
        raw_value = data[0]
        values=raw_value.split(',')
        for i in values:
            value=value+i
        print(value.strip() )
        heading = data[-2]+data[-1]
        print(heading.strip())
    count += 1

Ответы [ 2 ]

1 голос
/ 25 января 2020

Если у вас есть несколько файлов, лучше всего было бы иметь al oop и использовать csv writer.


import csv


#initialize an array with all the csv files you will write to

txtfiles = ['text1.csv' , 'text2.csv' , '....csv']
csvfiles = ['file1.csv' , 'file2.csv' , '....csv']

for file in txtfiles:
    with open( file , 'r') as in_file:
        stripped = (line.strip() for line in in_file)
        lines = (line.split(",") for line in stripped if line)

        #find the corresponding csv file you will write to 
        csvfile = csvfiles[textfiles.indexof(file)]

        with open(csvfile , 'w') as out_file:
                writer = csv.writer(out_file)
                #Input the header columns here
                writer.writerow(('header1' , 'header2' , '...'))
                writer.writerows(lines) #The lines is an array of lines that you have stripped

Надеюсь, это поможет!

0 голосов
/ 25 января 2020

Я думаю, что вы столкнулись с проблемой при построении графиков данных, если это так, тогда импортируйте ваш CSV-файл в виде pandas кадра данных, и тогда вы сможете легко построить график в python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...