消息关闭
    暂无新消息!
今天面试的时候有个题目就是:怎么设计一个通用的函数,能读取任何格式的大文件

2个回答

︿ 2
一楼这个特性还听方便的,我这块正好也有处理不同文件格式通用化的需求
︿ 0
很简单,这个可以利用yield,逐行读取文件,具体实现如下

def read_file(filename):
    with open(filename) as fd: 
        for line in fd: 
            yield line
filename = "bigfile.txt"
for line in read_file(filename):
    # 处理文件格式

这里介绍下yield
yield的作用就是把一个函数变成一个generator(生成器),
调用这个函数后会返回一个iterable对象,
可以使用for语句循环执行,每次循环都会执行函数内部的代码,
执行到yield时,函数就会返回一个iterable,
如此循环下去直到函数结束
详细信息可以看https://www.markbj.com/discuss/19

有什么问题可以来这里https://www.markbj.com/discuss/recommend
这里有国内一线互联网公司的大牛帮你解决python方面的问题