-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfile.py
138 lines (93 loc) · 3.26 KB
/
file.py
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import os
import matplotlib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import PySimpleGUI as sg
"""
This file contains all of the file i/o related functions for the app.
Last Updated: 04/10/2020
Author: Nathan Gillbanks
Contributors: Michael Graps
"""
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# use tkinter
matplotlib.use('TkAgg')
# Binary file IO pre/post calculation values
def binary_Write(fileName, df):
df.to_pickle(fileName)
def binary_Write_Post(fileName, df):
df.to_pickle(fileName)
def binary_Read(fileName):
data = pd.read_pickle(fileName)
return data
def binary_Read_Post(fileName):
data = pd.read_pickle(fileName)
return data
# CSV file IO pre/post calculation values+
def csv_Write(fileName, df):
df.to_csv(fileName, index=False, header=True, sep=',')
def csv_WritePost(fileName, df):
df.to_csv(fileName, index=False, header=True, sep=',')
def csv_read(fileName):
data = pd.read_csv(fileName, header=0, delimiter=',')
return data
def csv_read_Post(fileName):
data = pd.read_csv(fileName, header=0, delimiter=',')
return data
# data file IO pre/post calculation values
def data_Write(fileName, df):
df.to_csv(fileName, index=False, header=True, sep='\t')
def data_WritePost(fileName, df):
df.to_csv(fileName, index=False, header=True, sep='\t')
# columns=['t', 'i', 'Imag', 'Imagfilt', 'ifilt', 'ienv', 'int_ienv', 'ienv_filtered']
def data_read_Post(fileName):
data = pd.read_csv(fileName, header=0, delimiter=r"\s+")
return data
def data_read(fileName):
data = pd.read_csv(fileName, header=0, delimiter=r"\s+")
return data
# High-level function to determine which input to call
def readFile(fileName, post):
ext = os.path.splitext(fileName)[-1].lower()
if post == 1:
if ext == ".data":
data = data_read_Post(fileName)
elif ext == ".bin":
data = binary_Read_Post(fileName)
elif ext == ".csv":
data = csv_read_Post(fileName)
elif post == 0:
if ext == ".data":
data = data_read(fileName)
elif ext == ".bin":
data = binary_Read(fileName)
elif ext == ".csv":
data = csv_read(fileName)
return data
# High level function to determmine which output to call
def writeFile(fileName, data, post):
ext = os.path.splitext(fileName)[-1].lower()
if post == 1:
if ext == ".data":
data_WritePost(fileName, data)
elif ext == ".bin":
binary_Write_Post(fileName, data)
elif ext == ".csv":
csv_WritePost(fileName, data)
#else:
#sg.popup_error(
# 'Error: Invalid File Extension (Valid extensions are: .data, .csv, .bin)')
elif post == 0:
if ext == ".data":
data_Write(fileName, data)
elif ext == ".bin":
binary_Write(fileName, data)
elif ext == ".csv":
csv_Write(fileName, data)
elif ext == ".png" or ".jpg" or ".pdf":
plt.savefig(fileName, dpi=500)
elif post == 2:
csv_Write((str(fileName)+'.csv'), data)
#sg.popup_error(
# 'Error: Invalid File Extension (Valid extensions are: .data, .csv, .bin)')