如何优化文件读取与清洗?Python无库实现预期输出求助
优化文件字符串清洗的Python代码
问题场景
文件内容如下:
one two three four
原代码存在的问题:
- 缩进错误,
new_txt = []未正确缩进在with代码块内 - 错误复用变量
fname,且readline()仅读取第一行后,后续readlines()读取剩余行,导致第一行处理逻辑混乱 - 使用
[line.split() for line in f.readlines()]生成嵌套列表,空行分割后得到空列表,最终输出为嵌套结构
优化方案1:一次性读取并分割(适合小文件)
直接读取整个文件内容,利用split()默认分割任意空白字符(空格、制表符、换行符均包含),得到扁平列表:
def txt_cleaning(fname): with open(fname) as f: content = f.read() return content.split()
优化方案2:逐行处理(适合大文件,避免内存占用过高)
逐行读取文件,用extend()将每行分割后的元素直接加入结果列表,跳过空行的空列表:
def txt_cleaning(fname): new_txt = [] with open(fname) as f: for line in f: new_txt.extend(line.split()) return new_txt
两种方案均无需导入任何库,最终输出均为:
['one', 'two', 'three', 'four']
内容的提问来源于stack exchange,提问作者L10B
相关产品推荐
相关产品推荐

