我需要的是一个Python 3函数(或其他),它将采用文本流(如sys.stdin
或类似open(file_name, "rt")
返回的文本流)并返回文本流以供其他人使用函数但删除所有空格,用逗号替换所有选项卡,并在消费者代码读取数据时动态地将所有字母转换为小写(“懒惰”方式)。
我认为在Python 3中有一种相当简单的方法可以像列表推导类似,但不知道到目前为止究竟是什么。
答案 0 :(得分:0)
我不确定这是什么意思,但我能想到的最简单的方法是从文件继承(从open返回的类型)并覆盖read方法,以便在读取数据后执行所需的所有操作。一个简单的实现是:
class MyFile(file):
def read(*args, **kwargs):
data = super().read(*args,**kwargs)
# process data eg. data.replace(' ',' ').replace('\t', ',').lower()
return data
答案 1 :(得分:0)
我相信你要找的是io
模块,更具体地说是io.StringIO
。
然后,您可以使用open()
方法获取初始数据并进行修改,然后传递它:
with open(file_name, 'rt') as f:
stream = io.StringIO(f.read().replace(' ','').replace('\t',',').lower())