gpt4 book ai didi

python - 在 Python 中读取带有行连续字符的文件

转载 作者:行者123 更新时间:2023-11-28 19:49:39 24 4
gpt4 key购买 nike

我正在寻找一种很好的 pythonic 方式来读取文件,并加入任何作为上述行的逻辑延续的行,如行继续字符所示。例如。

Here is a normal line.
This line continues over \
two lines.
This line continues over\
three \
lines.

我在这里找到了一个解决方案:http://code.activestate.com/recipes/66064-reading-lines-with-continuation-characters ,但它似乎很笨重。在使用生成器的评论中,Daniel Wang 提供了一个很好的解决方案:

def loglines(rawdata):
lines = []
for i in rawdata.splitlines():
lines.append(i)
if not i.endswith("\\"):
yield "".join(lines)
lines = []
if len(lines)>0: yield "".join(lines)

如果您可以一次读取整个文件,这很好用。我想知道是否有任何内置函数可以处理这个问题,或者是否有人有任何其他建议。

最佳答案

with open("data.txt") as fin:
for line in fin:
line = line.rstrip('\n')
while line.endswith('\\'):
line = line[:-1] + next(fin).rstrip('\n')
print line
...

如果你愿意,你也可以将它拉出到一个生成器中

def continuation_lines(fin):
for line in fin:
line = line.rstrip('\n')
while line.endswith('\\'):
line = line[:-1] + next(fin).rstrip('\n')
yield line


with open("long.txt") as fin:
for line in continuation_lines(fin):
...

关于python - 在 Python 中读取带有行连续字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com