[MOD] Erreur de lecture des fichiers (standard, pas les options)

This commit is contained in:
Frédéric Boyer
2014-04-22 22:39:23 +00:00
parent d5ce87f7f8
commit 62923e1cb8
2 changed files with 27 additions and 14 deletions

View File

@ -92,6 +92,15 @@ def allEntryIterator(files,entryIterator,with_progress=False,histo_step=102):
for line in sys.stdin: for line in sys.stdin:
yield line yield line
else: else:
import os, stat
mode = os.fstat(0).st_mode
if stat.S_ISFIFO(mode):
pass
elif stat.S_ISREG(mode):
pass
else:
print>>sys.stderr, "No Entry to process"
sys.exit()
for entry in entryIterator(sys.stdin): for entry in entryIterator(sys.stdin):
yield entry yield entry

View File

@ -45,19 +45,23 @@ def universalOpen(file,*options):
@return: an iterator on text lines. @return: an iterator on text lines.
''' '''
if isinstance(file,str): if isinstance(file,str):
if urllib2.urlparse.urlparse(file)[0]=='': try:
rep = open(file,*options) if urllib2.urlparse.urlparse(file)[0]=='':
else: rep = open(file,*options)
rep = urllib2.urlopen(file,timeout=15) else:
rep = urllib2.urlopen(file,timeout=15)
if file[-3:] == '.gz':
rep = GzipFile(fileobj=rep) if file[-3:] == '.gz':
if file[-4:] == '.zip': rep = GzipFile(fileobj=rep)
zip = ZipFile(file=rep) if file[-4:] == '.zip':
data = zip.infolist() zip = ZipFile(file=rep)
assert len(data)==1,'Only zipped file containning a single file can be open' data = zip.infolist()
name = data[0].filename assert len(data)==1,'Only zipped file containning a single file can be open'
rep = zip.open(name) name = data[0].filename
rep = zip.open(name)
except Exception as e:
print 'Unexpected error: ', e
sys.exit();
else: else:
rep = file rep = file
return rep return rep