Вывод сообщений об ошибке в stderr при ошибке чтения из файла (readFile)

legacy27
Mike Hiretsky 5 years ago
parent b4568a5ef1
commit 09370af405

@ -773,8 +773,20 @@ def grepFile(filename, regexp, flags=0):
return match.group()
return ""
def readFile(filename):
"""
Прочитать целый файл или вернуть пустую строку в случае ошибки
"""
try:
if path.exists(filename):
with open(filename, 'r') as f:
return f.read()
except (OSError, IOError) as e:
sys.stderr.write("WARNING: file read error, {}\n".format(str(e)))
sys.stderr.flush()
return ""
def readFile(filename, tailbyte=None, headbyte=None, grab=False):
def readFileEx(filename, tailbyte=None, headbyte=None, grab=False):
"""
Прочитать целый файл или вернуть пустую строку.
tailbyte: прочитать только последнее указанное количество байт
@ -784,8 +796,6 @@ def readFile(filename, tailbyte=None, headbyte=None, grab=False):
try:
if path.exists(filename):
with open(filename, 'r') as f:
if tailbyte is None and headbyte is None and not grab:
return f.read()
if grab:
filterfunc = lambda s: "\n".join(
x for x in s.split("\n")
@ -801,7 +811,8 @@ def readFile(filename, tailbyte=None, headbyte=None, grab=False):
else:
return filterfunc(f.read())
except (OSError, IOError):
pass
sys.stderr.write("WARNING: file read error, {}\n".format(str(e)))
sys.stderr.flush()
return ""

Loading…
Cancel
Save