-
Notifications
You must be signed in to change notification settings - Fork 1
/
func_import_file.py
45 lines (37 loc) · 1.67 KB
/
func_import_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
#!/usr/bin/env python
__version__ = "20181125_2202"
__author__ = "Decaff_42"
__copyright__ = "2018 by Decaff_42"
__license__ = """Only non-comercial use with attribution is allowed without
prior written permission from Decaff_42."""
import csv
def import_any_file(filepath, file_type):
"""Import and handle any filetype as needed by various scripts."""
data = list() # Initialize here
file_type = file_type.upper() # Will be needed in multiple places.
if filepath.endswith(".csv") or file_type is "CSV":
# This is a csv file and should be read using the csv module.
with open(filepath, mode='r') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
data.append(row)
else:
# This is a text-based filetype
with open(filepath, mode='r', encoding='utf-8', errors='ignore') as txt_file:
data = txt_file.readlines()
for ind, row in enumerate(data):
if row.endswith("\n"):
# The readlines method in line 22 leaves the new line character
# in the string it imports. This will strip it away.
data[ind] = row.strip('\n')
if file_type == "LST":
# It is useful to split the various elements of the .lst line
data[ind] = data[ind].split() # Whitespace split
if file_type == "CFG":
# Settings file needs to be put into dictionary.
output = {}
for i in data:
d = i.split(" -- ")
output[str(d[0])] = d[1]
data = output
return data