Skip to content

Commit f7413a2

Browse files
add parameters keep_end, strip and skip_empty in read_lines_lazy
1 parent 9fe8b41 commit f7413a2

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

pysenal/io/file.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,24 @@ def read_lines(filename, encoding=_ENCODING_UTF8, keep_end=False, strip=False, s
4646
return f.read().splitlines(True)
4747

4848

49-
def read_lines_lazy(src_filename, encoding=_ENCODING_UTF8):
49+
def read_lines_lazy(src_filename, encoding=_ENCODING_UTF8, keep_end=False, strip=False, skip_empty=False):
5050
"""
5151
use generator to load files, one line every time
5252
:param src_filename: source file path
5353
:param encoding: file encoding
54-
:return: lines in file
54+
:param keep_end: whether keep line break in result lines
55+
:param strip: whether strip every line, default is False
56+
:param skip_empty: whether skip empty line, when strip is False, judge after strip
57+
:return: lines in file one by one
5558
"""
5659
file = open(src_filename, encoding=encoding)
5760
for line in file:
61+
if not keep_end:
62+
line = line.rstrip(_LINE_BREAKS)
63+
if strip:
64+
line = line.strip()
65+
if skip_empty and not line:
66+
continue
5867
yield line
5968
file.close()
6069

0 commit comments

Comments
 (0)