我想从一个文件中读取一个数字列表,一次只能查询一个字符,以检查该字符是什么,是一个数字,一个句点,一个+或 - ,一个e或E,还是一些其他char ...然后根据它执行我想要的任何操作。如何使用我已有的现有代码执行此操作?这是我尝试过的一个例子,但没有用。我是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))
答案 0 :(得分:52)
这是一种制作一个一个字符的文件迭代器的技术:
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
...
f.read(1)
。 答案 1 :(得分: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))
答案 2 :(得分:1)
事实上它更容易。在itertools中有一个很好的实用工具,它经常被忽略。 ; - )
for character in itertools.chain.from_iterable(open('file.data')):
process(character)