gpt4 book ai didi

python - 读取文件时如何选择行分隔符?

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:44 26 4
gpt4 key购买 nike

我正在尝试读取一个文件,其中包含一个由逗号分隔的 2.9 GB 长行。此代码将逐行读取文件,每次打印都在 '\n' 处停止:

with open('eggs.txt', 'rb') as file:
for line in file:
print(line)

我怎样才能迭代停止在 '、'(或任何其他字符/字符串)处的“行”?

最佳答案

我认为没有内置的方法可以实现这一点。您将必须使用 file.read(block_size) 逐 block 读取文件,以逗号分隔每个 block ,并手动重新连接跨越 block 边界的字符串。

请注意,如果长时间没有遇到逗号,您仍然可能会耗尽内存。 (当遇到很长的行时,同样的问题适用于逐行读取文件。)

这是一个示例实现:

def split_file(file, sep=",", block_size=16384):
last_fragment = ""
while True:
block = file.read(block_size)
if not block:
break
block_fragments = iter(block.split(sep))
last_fragment += next(block_fragments)
for fragment in block_fragments:
yield last_fragment
last_fragment = fragment
yield last_fragment

关于python - 读取文件时如何选择行分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39140348/

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