-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcsvFilesAnalysisFinal.py
More file actions
79 lines (63 loc) · 3.17 KB
/
csvFilesAnalysisFinal.py
File metadata and controls
79 lines (63 loc) · 3.17 KB
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
import fnmatch
import os
import sys
import csv
import codecs
from collections import defaultdict
folderPath = "large_image"
pausedStatusFiles = os.listdir(folderPath + "/paused")
finishedStatusFiles = os.listdir(folderPath + "/finished")
queuedStatusFiles = os.listdir(folderPath + "/queued")
uploadingStatusFiles = os.listdir(folderPath + "/uploading")
failedStatusFiles = os.listdir(folderPath + "/failed")
pausedStatusFiles = sorted(pausedStatusFiles)
finishedStatusFiles = sorted(finishedStatusFiles)
queuedStatusFiles = sorted(queuedStatusFiles)
uploadingStatusFiles = sorted(uploadingStatusFiles)
failedStatusFiles = sorted(failedStatusFiles)
def checkerAndWriter(statusFolder, statusFiles):
finalStringToPrint = ""
for g in range(0, len(statusFiles)):
csv_file = folderPath + statusFolder + statusFiles[g]
columns = defaultdict(list) # each value in each column is appended to a list
with open(csv_file) as f:
reader = csv.DictReader(f) # read rows into a dictionary format
for row in reader: # read a row as {column1: value1, column2: value2,...}
for (k, v) in row.items(): # go over each column name and value
columns[k].append(v) # append the value into the appropriate list
# based on column name k
with open(csv_file, "r") as f:
reader = csv.reader(f, delimiter=",")
columName = next(reader)
emptyColums = []
finalStringToPrint += "\n" + statusFiles[g] + " : "
for i in range(1, len(columName)):
if columns[columName[i]] != '':
z = ((columns[columName[i]].count('') / len(columns[columName[i]])) * 100) if len(columns[columName[i]]) != 0 else 0
finalStringToPrint += columName[i] + "-" + str(z) + ", "
finalStringToPrint += str(len(columns[columName[i]]))
return finalStringToPrint
# print("the empty columns are: ",emptyColums)
# print("We have ", len(emptyColums), " empty colum(s) out of ", len(columName) -1, " so the percentage is ", format(100 * (len(emptyColums))/float(len(columName) -1), '.2f'), "%")
def printToFile():
resutlFile = open(folderPath + "_" + "result.txt", "w")
resutlFile.write(folderPath + "\n")
resutlFile.write("Paused Status")
resutlFile.write(checkerAndWriter("/paused/", pausedStatusFiles) + "\n")
resutlFile.write("$$$\n")
resutlFile.write("Finished Status")
resutlFile.write(checkerAndWriter("/finished/", finishedStatusFiles) + "\n")
resutlFile.write("$$$ \n")
resutlFile.write("Queued Status")
resutlFile.write(checkerAndWriter("/queued/", queuedStatusFiles) + "\n")
resutlFile.write("$$$ \n")
resutlFile.write("Uploading Status")
resutlFile.write(checkerAndWriter("/uploading/", uploadingStatusFiles) + "\n")
resutlFile.write("$$$\n")
resutlFile.write("Failed Status")
resutlFile.write(checkerAndWriter("/failed/", failedStatusFiles) + "\n")
resutlFile.close()
# output to csv file
printToFile()
# z = ((columns[columName[i]].count('') / len(columns[columName[i]])) * 100 ) if len(columns[columName[i]]) != 0 else 0
# str(columns[columName[i]].count('') / len(columns[columName[i]]) * 100 )