-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathWriteCSVFile.py
68 lines (48 loc) · 1.87 KB
/
WriteCSVFile.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
import sys, json, csv, os
def writeFile(user,name,output):
f = open(output, 'a')
writeCSV = csv.writer(f, delimiter=',')
userinfo = None
if(len(user)==1 and list(user)[0] in ['userGps','userCell']):
for k in user.keys():
word = k
userinfo = user[word]
if(userinfo):
user = userinfo
for day in sorted(user.keys()):
if len(user[day]):
for trace in user[day]:
trace[1] = name
trace[6], trace[7] = round(float(trace[6]), 7), round(float(trace[7]), 7)
writeCSV.writerow(trace)
f.close()
if __name__ == '__main__':
inputFile = sys.argv[1]
outputFile = sys.argv[2]
outputFile = outputFile.replace('.csv','_tmp.csv')
outputFile_fail = outputFile.replace('.csv','_fail.csv')
f1 = open(outputFile, 'w')
f1.write('unix_start_t,user_ID,mark_1,orig_lat,orig_long,orig_unc,stay_lat,stay_long,stay_unc,stay_dur,stay_ind,human_start_t\n')
f1.close()
f1 = open(outputFile, 'a')
writeCSV1 = csv.writer(f1, delimiter=',')
f2 = open(outputFile_fail, 'w')
f2.write('unix_start_t,user_ID,mark_1,orig_lat,orig_long,orig_unc,stay_lat,stay_long,stay_unc,stay_dur,stay_ind,human_start_t\n')
f2.close()
f2 = open(outputFile_fail, 'a')
writeCSV2 = csv.writer(f2, delimiter=',')
with open(inputFile,'rU') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
readCSV.next()
for row in readCSV:
if not len(row) ==12 or len(row[0])!=10 or len(row[11])!=12:
writeCSV2.writerow(row)
print(row)
else:
writeCSV1.writerow(row)
f1.close()
f2.close()
outputFile_real = outputFile.replace('_tmp.csv','.csv')
if os.path.isfile(outputFile_real):
os.remove(outputFile_real)
os.rename(outputFile,outputFile_real)