Adds a uopen function able to open transparently a local or a remote
file compressed or not
This commit is contained in:
5
python/obitools3/files/universalopener.pxd
Normal file
5
python/obitools3/files/universalopener.pxd
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#cython: language_level=3
|
||||||
|
|
||||||
|
from .uncompress cimport CompressedFile
|
||||||
|
|
||||||
|
cpdef CompressedFile uopen(str name, mode=?)
|
23
python/obitools3/files/universalopener.pyx
Normal file
23
python/obitools3/files/universalopener.pyx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#cython: language_level=3
|
||||||
|
|
||||||
|
'''
|
||||||
|
Created on 25 mars 2016
|
||||||
|
|
||||||
|
@author: coissac
|
||||||
|
'''
|
||||||
|
|
||||||
|
from urllib.request import urlopen
|
||||||
|
|
||||||
|
|
||||||
|
cpdef CompressedFile uopen(str name, mode='r'):
|
||||||
|
cdef CompressedFile c
|
||||||
|
|
||||||
|
try:
|
||||||
|
f = urlopen(name)
|
||||||
|
except ValueError:
|
||||||
|
f = open(name,mode)
|
||||||
|
|
||||||
|
c = CompressedFile(f)
|
||||||
|
|
||||||
|
return c
|
||||||
|
|
Reference in New Issue
Block a user