Initial commit
This commit is contained in:
50
pgm/getdatafilepath
Executable file
50
pgm/getdatafilepath
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
from glob import glob
|
||||
|
||||
USAGE = """
|
||||
Usage:
|
||||
|
||||
getdatafilepath <instrument> <year> <number>
|
||||
|
||||
get datafile path
|
||||
"""
|
||||
|
||||
if len(sys.argv) != 4:
|
||||
print(USAGE)
|
||||
sys.exit()
|
||||
|
||||
instrument = sys.argv[1]
|
||||
year = sys.argv[2]
|
||||
number = int(sys.argv[3])
|
||||
key = 'dat_spec_%s' % instrument
|
||||
last = ''
|
||||
for datspec in os.environ[key].replace('%%%%', year).split(','):
|
||||
if '/' not in datspec:
|
||||
datspec = last.rsplit('.', 1)[0]+datspec
|
||||
last = datspec
|
||||
for i in range(10,0,-1):
|
||||
pat = '*' * i
|
||||
if datspec.find(pat) >= 0:
|
||||
break
|
||||
else:
|
||||
pat = None
|
||||
|
||||
if pat:
|
||||
fmt = '%%.%dd' % len(pat)
|
||||
datspec = datspec.replace(pat, fmt % number)
|
||||
if year < '2020':
|
||||
datspec = datspec.replace('###', '%.3d' % (number // 1000))
|
||||
if os.path.isfile(datspec):
|
||||
print(datspec)
|
||||
break
|
||||
else:
|
||||
datspec = datspec.replace('###', '*')
|
||||
files = glob(datspec)
|
||||
if len(files) == 1:
|
||||
print(files[0])
|
||||
break
|
||||
else:
|
||||
print('%s:%s:%d' % (instrument, year, number))
|
Reference in New Issue
Block a user