input_output.get_ecl_key_val

 1import numpy as np
 2import sys
 3
 4
 5def read_file(val_type, filename):
 6
 7    file = open(filename, 'r')
 8    lines = file.readlines()
 9    key = ''
10    line_idx = 0
11    while key != val_type:
12        line = lines[line_idx]
13        if not line:
14            print('Error: Keyword not found')
15            sys.exit(1)
16
17        line_idx += 1
18        if len(line):
19            key = line.split()
20            if key:
21                key = key[0]
22    data = []
23    finished = False
24    while line_idx < len(lines) and not finished:
25        line = lines[line_idx]
26        line_idx += 1
27        if line == '\n' or line[:2] == '--':
28            continue
29        if line == '':
30            break
31        if line.strip() == '/':
32            finished = True
33        sub_str = line.split()
34        for s in sub_str:
35            if '*' in s:
36                num_val = s.split('*')
37                v = float(num_val[1]) * np.ones(int(num_val[0]))
38                data.append(v)
39            elif '/' in s:
40                finished = True
41                break
42            else:
43                data.append(float(s))
44
45    values = np.hstack(data)
46    return values
47
48def write_file(filename, val_type, data):
49
50    file = open(filename, 'w')
51    file.writelines(val_type + '\n')
52    if data.dtype == 'int64':
53        np.savetxt(file, data, fmt='%i')
54    else:
55        np.savetxt(file, data)
56    file.writelines('/' + '\n')
57    file.close()
def read_file(val_type, filename):
 6def read_file(val_type, filename):
 7
 8    file = open(filename, 'r')
 9    lines = file.readlines()
10    key = ''
11    line_idx = 0
12    while key != val_type:
13        line = lines[line_idx]
14        if not line:
15            print('Error: Keyword not found')
16            sys.exit(1)
17
18        line_idx += 1
19        if len(line):
20            key = line.split()
21            if key:
22                key = key[0]
23    data = []
24    finished = False
25    while line_idx < len(lines) and not finished:
26        line = lines[line_idx]
27        line_idx += 1
28        if line == '\n' or line[:2] == '--':
29            continue
30        if line == '':
31            break
32        if line.strip() == '/':
33            finished = True
34        sub_str = line.split()
35        for s in sub_str:
36            if '*' in s:
37                num_val = s.split('*')
38                v = float(num_val[1]) * np.ones(int(num_val[0]))
39                data.append(v)
40            elif '/' in s:
41                finished = True
42                break
43            else:
44                data.append(float(s))
45
46    values = np.hstack(data)
47    return values
def write_file(filename, val_type, data):
49def write_file(filename, val_type, data):
50
51    file = open(filename, 'w')
52    file.writelines(val_type + '\n')
53    if data.dtype == 'int64':
54        np.savetxt(file, data, fmt='%i')
55    else:
56        np.savetxt(file, data)
57    file.writelines('/' + '\n')
58    file.close()