发布于2019-08-03 07:49 阅读(2542) 评论(0) 点赞(6) 收藏(5)
https://github.com/kenwoodjw/python_interview_question
从今天开始,每天做几道python面试题和数据结构的题,并做以笔记
文件操作
def get_lines(): with open('file.txt','rb') as f: return f.readlines() if __name__ == '__main__': for e in get_lines(): process(e) # 处理每一行数据
现在要处理一个大小为10G的文件,但是内存只有4G,如果在只修改get_lines 函数而其他代码保持不变的情况下,应该如何实现?需要考虑的问题都有那些?
def print_directory_contents(sPath): """ 这个函数接收文件夹的名称作为输入参数 返回该文件夹中文件的路径 以及其包含文件夹中文件的路径 """
答案:
1.
def get_lines(): with open('file.txt', 'rb') as f: for i in f: yeild i
f.readlines()是将文件中的所有内容存入一个列表中,当文件较大时,会占用大量内存。答案变成成生成器函数,减少内存开支
2.
def print_directory_contents(sPath): """ 这个函数接收文件夹的名称作为输入参数 返回该文件夹中文件的路径 以及其包含文件夹中文件的路径 """ import os for s_child in os.listdir(sPath): s_child_path = os.path.join(sPath, s_child) if os.path.isdir(s_child_path) print_directory_contents(s_child_path) else: print(s_child_path)
运用了os模块中的os.listdir, os.path.join和os.path.isdir三个函数,需要牢记。此外,简单实用了迭代函数
作者:美美哒
链接:https://www.pythonheidong.com/blog/article/3723/a1db6b02731a483fcc2a/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!