[파이썬 Example #008] Multi-run and editing output

2019. 11. 8. 09:56컴퓨터_Com/파이썬 지식_Things to remember

1. 현재 폴더의 모든 inp 파일을 실행 후 output을 cvs 파일로 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
import pandas as pd
import glob
 
 
''' MULTIPLE RUNNING SIMULATE '''
 
all_file_list = os.listdir()  # 현재 폴더의 모든 파일 리스트
inp_file_list = [file for file in all_file_list if file.endswith(".inp")]
print("input_file_list: {}".format(inp_file_list))
 
for inp_file in inp_file_list:
    run_sim = ['simulate3 -kw']
    run_sim.append(inp_file)
 
    os.system(" ".join(run_sim))
 
''' EDITING OUTPUT TO CSV FILE'''
 
all_file_list = os.listdir()  # LIST OF ALL FILES IN CURRENT FOLDER
out_file_list = [file for file in all_file_list if file.endswith(".out")]  # ALL .INP FILES
print("output_file_list: {}".format(out_file_list))
 
for out_file in out_file_list:
    sum_file = out_file.split(".")[0+ ".dat"
 
    awk_sum = ["awk '/^ P W R  S u m m a r y/,/^1S/'"]
    awk_sum.append(out_file)
    awk_sum.append("|sed '/^ *$/d'|sed 's/\/ /\//g'|grep -v S|awk '{print  $1,$3,$4,$6,$8,$13,$15,$17}' >")
    awk_sum.append(sum_file)
    os.system(" ".join(awk_sum))
 
    '''GREP WORST STUCK KEFF FROM OUTPUT FILE'''
    stuck_file = out_file.split(".")[0+ ".N_1"
 
    stuck = [" awk '/ Summary of Individual Control Rod Worths/,/RMS/'"]
    stuck.append(out_file)
    stuck.append(" |grep '^     1'|awk '{print $6}' >")
    stuck.append(stuck_file)
    os.system(" ".join(stuck))
 
    sum_table = pd.read_csv((sum_file), sep=" ", header=None)
    sum_table.columns = ['STEP''BU''K-EFF''PPM''AO''PW''Rod Step''Tavg']
 
    stuck_table = pd.read_csv(stuck_file, sep=" ", header=None)
    stuck_table.columns = ['N-1']
 
    result = pd.concat([sum_table, stuck_table], axis=1)
    csv_file = out_file.split(".")[0+ ".csv"
    result.to_csv(csv_file, index = True, float_format = '%.5f')
 
'''MERGE CVS FILE IN LINUX'''
os.system("ls *csv |sort -r |xargs cat > mergefile.csv")
cs