当前位置: 首页 > 面试题库 >

在Python中的字符串上更改“ for each”循环的定界符

乐正玺
2023-03-14
问题内容

我需要逐行流式读取python中的输入文本文件。这意味着将文本文件逐行而不是一次全部加载到内存中。但是我的行定界符不是空格,它们是任意字符。

这是用于逐行加载文件的方法

with open("log.txt") as infile:
    for line in infile:
        do_something_with(line)

上面是完美的,但是我需要将定界符从空格更改为其他字符。

如何才能做到这一点?谢谢。


问题答案:

import re
def open_delimited(filename, delimiter, chunksize=1024, args, kwargs):
with open(filename,
args, **kwargs) as infile:
remainder = ‘’
for chunk in iter(lambda: infile.read(chunksize), ‘’):
pieces = re.split(delimiter, remainder+chunk)
for piece in pieces[:-1]:
yield piece
remainder = pieces[-1]
if remainder:
yield remainder

for line in open_delimited("log.txt", delimiter='/'):
    print(repr(line))


 类似资料:
  • 问题内容: Python中替换字符串中字符的最简单方法是什么? 例如: 问题答案: 不要修改字符串。 与他们一起工作作为清单;仅在需要时才将它们转换为字符串。 Python字符串是不可变的(即无法修改)。有很多的原因。使用列表,直到你别无选择,然后将它们变成字符串。

  • 我刚开始学习Java,我遇到了这个问题:我有一个无限的 while 循环,它创建了一个通过套接字发送的消息;目前,在从队列中轮询许多元素并读取它们之前,不会发送消息。 我的目标是在N秒后发送消息,而不是等待到达MAX_MSG_TO_SEND…有可能做到吗?还是我将继续这种方法?

  • 我认为每次更改字符串后,Python字符串的id都必须更改。但我发现真正的行为是不同的。例如,并非输出下面的所有代码字符串都不同: 这就是为什么我认为Python内核正在尝试优化代码,并开始对内存中的字符串进行奇怪的操作。该假设的另一个论点是,常量ID与大小为2的幂的段相关联: 但这其中还有一件奇怪的事。让我们看看随着字符串大小的增加,段大小会发生什么变化: 最后,我们可以尝试近似地将char添加

  • 背景故事: 我需要根据我制作的字母表来排列单词。 我之前做了大量的循环,但我从之前问题的答案中得到了一个想法,可以像这样映射它: 所以词会变,苹果会变成苹果--- 这似乎覆盖了所有字符,因此输出为: 我的大脑今天很模糊,我想我可以一直坚持到最后,直到找到某种解决方案,但这似乎不是一种有效的方法。有什么想法吗? 此时,我从列表中提取一个单词,将其放入一个字符数组中,这样我就可以分别更改每个字符,然后

  • 问题内容: 我有以下数据: 我想定界标记。 分隔符在这里。 我的分隔符设置器是: 然而, 没有给出所需的结果。 问题答案: 无需像您所做的那样通过将分隔符拆分来设置分隔符。 这是可以编译和运行的完整程序: 如果要对模式使用分割,可以使用或。 要查看并付诸实践,下面是使用所有三种方法的示例: 如果要经常使用相同的模式进行拆分,则建议使用模式。顺便说一句,输出为:

  • 众所周知,不能将foreach循环中的集合修改为。但是foreach循环如何签出任何更改?我的意思是,如果我有密码: …它仍然会抛出异常。IEnumerator接口中没有集合的任何版本控制。这是怎么回事?我之所以要求这样做,是因为在java中,您可以在循环期间轻松地修改集合,这是我自己的HashCollection实现中的问题,我不知道如何检查任何集合更改。