gpt4 book ai didi

python : read text file character by character in loop

转载 作者:行者123 更新时间:2023-11-28 20:38:47 24 4
gpt4 key购买 nike

例如,有一个文本文件,其中包含从 0 到 9 的数字:

0123456789

使用下面的函数,我想得到这样的输出:

>>> print_char('filename')
0
>>> print_char('filename')
1
>>> print_char('filename')
2
.
.
.
>>> print_char('filename')
9

这意味着,每次我调用该函数时,它都会返回下一个数字。

这是我的功能:

def print_char(filename):
f = open(filename, 'r')
while True:
char=f.read(1)
if not char:
break
print(char)

...以及我得到的输出:

>>> print_char('filename')
0
1
2
3
.
.
.
9

那么,如何创建在每次调用时逐个字符返回的函数呢?

最佳答案

我会以不同的方式处理这个问题,并创建一个接受文件名并返回生成器的函数:

def reader(filename):
with open(filename) as f:
while True:
# read next character
char = f.read(1)
# if not EOF, then at least 1 character was read, and
# this is not empty
if char:
yield char
else:
return

然后你只需要给文件名一次

r = reader('filename')

并且文件保持打开状态以便更快地操作。要获取下一个字符,请使用 next 内置函数

print(next(r))  # 0
print(next(r)) # 1
...

您还可以使用 itertools,例如在此对象切片字符上使用 islice,或者在 for 循环中使用它:

# skip characters until newline
for c in r:
if r == '\n':
break

关于 python : read text file character by character in loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40330027/

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