-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathftp_time.py
55 lines (38 loc) · 1.43 KB
/
ftp_time.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
#!/usr/bin/python
# FTP parser unit test date fixer.
# The unit tests seem to be written assuming the local system is in
# the same time zone as Paris, but for testing purposes it is easier
# to just use GMT. This script does the conversion.
import argparse
import datetime
from datetime import datetime
import os
import pytz
dateFormatString = "%m-%d-%Y %H:%M:%S"
sourceTimeZone = pytz.timezone('Europe/Paris')
def fileAnalyzer(fname):
print "Analyzing", fname
f = open(fname, "r")
newFile = open(fname + ".intermediate", "w")
for l in f:
if not l[0].isdigit():
newFile.write(l)
continue
# R-dls.out includes dates like this, which the date parsing
# library does not like.
if l.startswith("00-00-0000 00:00:00"):
newFile.write(l)
continue
dateTimeString = l[:20]
dateTime = datetime.strptime(dateTimeString, dateFormatString)
dateTime = sourceTimeZone.localize(dateTime).astimezone(pytz.utc)
newString = datetime.strftime(dateTime, dateFormatString)
newFile.write(newString + l[20:])
f.close()
newFile.close()
os.rename(fname + ".intermediate", fname)
parser = argparse.ArgumentParser(description='Fix FTP unit test times.')
parser.add_argument('fileName', metavar='F',
help='Full path of directory to open files from')
args = parser.parse_args()
fileAnalyzer(args.fileName)