Mercurial > hg > nsaunier > traffic-intelligence
comparison python/utils.py @ 0:aed8eb63cdde
initial commit with non-functional python code for NGSIM
| author | Nicolas Saunier <nico@confins.net> |
|---|---|
| date | Sun, 18 Oct 2009 22:29:24 -0400 |
| parents | |
| children | de5642925615 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:aed8eb63cdde |
|---|---|
| 1 #! /usr/bin/env python | |
| 2 ''' Generic utilities.''' | |
| 3 | |
| 4 #from numpy import * | |
| 5 #from pylab import * | |
| 6 | |
| 7 __metaclass__ = type | |
| 8 | |
| 9 commentChar = '#'; | |
| 10 | |
| 11 def openCheck(filename, option = 'r', quit = False): | |
| 12 '''Open file filename in read mode by default | |
| 13 and checks it is open | |
| 14 | |
| 15 >>> f = openCheck('non_existant_file.txt') | |
| 16 File non_existant_file.txt could not be opened. | |
| 17 ''' | |
| 18 try: | |
| 19 return open(filename, option) | |
| 20 except IOError: | |
| 21 print 'File %s could not be opened.' % filename | |
| 22 if quit: | |
| 23 from sys import exit | |
| 24 exit() | |
| 25 return None | |
| 26 | |
| 27 def readline(f): | |
| 28 '''Modified readline function to skip comments.''' | |
| 29 s = f.readline() | |
| 30 while (len(s) > 0) and s.startswith(commentChar): | |
| 31 s = f.readline() | |
| 32 return s.strip() | |
| 33 | |
| 34 def removeExtension(filename, delimiter = '.'): | |
| 35 '''Returns the filename minus the extension (all characters after last .) | |
| 36 >>> removeExtension('test-adfasdf.asdfa.txt') | |
| 37 'test-adfasdf.asdfa' | |
| 38 >>> removeExtension('test-adfasdf') | |
| 39 'test-adfasdf' | |
| 40 ''' | |
| 41 i = filename.rfind(delimiter) | |
| 42 if i>0: | |
| 43 return filename[:i] | |
| 44 else: | |
| 45 return filename | |
| 46 | |
| 47 def listfiles(dirname, extension, remove = False): | |
| 48 '''Returns the list of files with the extension in the directory dirname''' | |
| 49 from os import listdir | |
| 50 tmp = [f for f in listdir(dirname) if f.endswith(extension)] | |
| 51 tmp.sort() | |
| 52 if remove: | |
| 53 return [removeExtension(f, extension) for f in tmp] | |
| 54 else: | |
| 55 return tmp | |
| 56 | |
| 57 | |
| 58 | |
| 59 | |
| 60 if __name__ == "__main__": | |
| 61 import doctest | |
| 62 doctest.testmod() | |
| 63 #doctest.testfile("example.txt") |
