Mercurial Hosting > traffic-intelligence
comparison python/utils.py @ 1021:16932cefabc1
work on paths in line with new configurations from tracker
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 05 Jun 2018 17:02:28 -0400 |
parents | 4f3387a242a1 |
children | b7689372c0ec |
comparison
equal
deleted
inserted
replaced
1020:9fb82fe0156f | 1021:16932cefabc1 |
---|---|
3 ''' Generic utilities.''' | 3 ''' Generic utilities.''' |
4 | 4 |
5 import matplotlib.pyplot as plt | 5 import matplotlib.pyplot as plt |
6 from datetime import time, datetime | 6 from datetime import time, datetime |
7 from argparse import ArgumentTypeError | 7 from argparse import ArgumentTypeError |
8 from pathlib import Path | |
8 from math import sqrt, ceil, floor | 9 from math import sqrt, ceil, floor |
9 from scipy.stats import kruskal, shapiro, lognorm | 10 from scipy.stats import kruskal, shapiro, lognorm |
10 from scipy.spatial import distance | 11 from scipy.spatial import distance |
11 from scipy.sparse import dok_matrix | 12 from scipy.sparse import dok_matrix |
12 from numpy import zeros, array, exp, sum as npsum, int as npint, arange, cumsum, median, isnan, ones, convolve, dtype, isnan, NaN, mean, ma, isinf, savez, load as npload, log | 13 from numpy import zeros, array, exp, sum as npsum, int as npint, arange, cumsum, median, isnan, ones, convolve, dtype, isnan, NaN, mean, ma, isinf, savez, load as npload, log |
969 | 970 |
970 def cleanFilename(s): | 971 def cleanFilename(s): |
971 'cleans filenames obtained when contatenating figure characteristics' | 972 'cleans filenames obtained when contatenating figure characteristics' |
972 return s.replace(' ','-').replace('.','').replace('/','-').replace(',','') | 973 return s.replace(' ','-').replace('.','').replace('/','-').replace(',','') |
973 | 974 |
975 def getRelativeFilename(parentPath, filename): | |
976 'Returns filename if absolute, otherwise parentPath/filename as string' | |
977 filePath = Path(filename) | |
978 if filePath.is_absolute(): | |
979 return filename | |
980 else: | |
981 return str(parentPath/filePath) | |
982 | |
974 def listfiles(dirname, extension, remove = False): | 983 def listfiles(dirname, extension, remove = False): |
975 '''Returns the list of files with the extension in the directory dirname | 984 '''Returns the list of files with the extension in the directory dirname |
976 If remove is True, the filenames are stripped from the extension''' | 985 If remove is True, the filenames are stripped from the extension''' |
977 from os import listdir | 986 d = Path(dirname) |
978 tmp = [f for f in listdir(dirname) if f.endswith(extension)] | 987 if d.is_dir(): |
979 tmp.sort() | 988 tmp = [str(f) for f in d.glob('*.extension')] |
980 if remove: | 989 if remove: |
981 return [removeExtension(f, extension) for f in tmp] | 990 return [removeExtension(f, extension) for f in tmp] |
982 else: | 991 else: |
983 return tmp | 992 return tmp |
993 else: | |
994 print(dirname+' is not a directory') | |
995 return [] | |
984 | 996 |
985 def mkdir(dirname): | 997 def mkdir(dirname): |
986 'Creates a directory if it does not exist' | 998 'Creates a directory if it does not exist' |
987 import os | 999 p = Path(dirname) |
988 if not os.path.exists(dirname): | 1000 if not p.exists(): |
989 os.mkdir(dirname) | 1001 p.mkdir() |
990 else: | 1002 else: |
991 print(dirname+' already exists') | 1003 print(dirname+' already exists') |
992 | 1004 |
993 def removeFile(filename): | 1005 def removeFile(filename): |
994 '''Deletes the file while avoiding raising an error | 1006 '''Deletes the file while avoiding raising an error |
995 if the file does not exist''' | 1007 if the file does not exist''' |
996 import os | 1008 f = Path(filename) |
997 if (os.path.exists(filename)): | 1009 if (f.exists()): |
998 os.remove(filename) | 1010 f.unlink() |
999 else: | 1011 else: |
1000 print(filename+' does not exist') | 1012 print(filename+' does not exist') |
1001 | 1013 |
1002 def line2Floats(l, separator=' '): | 1014 def line2Floats(l, separator=' '): |
1003 '''Returns the list of floats corresponding to the string''' | 1015 '''Returns the list of floats corresponding to the string''' |