-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFillDowner.py
executable file
·72 lines (60 loc) · 1.66 KB
/
FillDowner.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
import sys
import csv
import Tkinter as tk
import tkFileDialog
import tkMessageBox
# Dialogs to select the files we're working with
def get_original_file():
original_filename = ""
root = tk.Tk()
root.withdraw()
original_filename = tkFileDialog.askopenfilename(defaultextension = ".csv")
if original_filename == "":
sys.exit("No file selected")
elif original_filename.lower().endswith(".csv"):
return original_filename
else:
tkMessageBox.showerror("Error!", "You must select a CSV file.", icon = "error")
get_original_file()
def get_results_file():
results_filename = ""
root = tk.Tk()
root.withdraw()
results_filename = tkFileDialog.asksaveasfilename(defaultextension = ".csv")
if results_filename == "":
if tkMessageBox.askyesno("Cancel?", "Are you sure you want to cancel processing this file?"):
sys.exit("File save cancelled")
else:
get_results_file()
else:
return results_filename
# The process to "fill down" the blank fields
def process_rows(row):
global a
global b
if row[0] == "":
row[0] = a
else:
a = row[0]
if row[1] == "":
row[1] = b
else:
b = row[1]
writer.writerow(row)
print row
# Do it!
originFile = get_original_file()
resultFile = get_results_file()
# Open the files and process them
with open(originFile, 'r') as f, open(resultFile, 'w') as results:
reader = csv.reader(f)
writer = csv.writer(results)
for row in reader:
process_rows(row)
# def get_columns():
# empty_columns = list(raw_input("Which columns need to be filled? "))
# empty_columns = map(int, empty_columns)
# print empty_columns
#
#
# get_columns()