如何在Python中一次从文件读取一个字符?
我想从一个文件中逐个读取数字,看看每个字符是什么,比如它是数字、句点、加号或减号、字母e或E,还是其他字符……然后根据这些字符做我想做的操作。我该如何利用我现有的代码来实现这个呢?这是我尝试过的一个例子,但没有成功。我刚开始学Python。提前谢谢你们!
import sys
def is_float(n):
state = 0
src = ""
ch = n
if state == 0:
if ch.isdigit():
src += ch
state = 1
...
f = open("file.data", 'r')
for n in f:
sys.stdout.write("%12.8e\n" % is_float(n))
3 个回答
2
其实这件事要简单得多。Python的itertools库里有一个很不错的工具,很多人都忽略了它。;-)
for character in itertools.chain.from_iterable(open('file.data')):
process(character)
53
这里有一种逐个字符读取文件的技巧:
from functools import partial
with open("file.data") as f:
for char in iter(partial(f.read, 1), ''):
# now do something interesting with the characters
...
1
for x in open()
是用来从一个文件中读取每一行的代码。它会把整个文件的内容当作一块文本读取,然后逐个字符地查看这些文本。
import sys
def is_float(n):
state = 0
src = ""
ch = n
if state == 0:
if ch.isdigit():
src += ch
state = 1
...
data = open("file.data", 'r').read()
for n in data: # characters
sys.stdout.write("%12.8e\n" % is_float(n))