# os.walk()和os.list 都是得到所有文件的列表, 如果目录下文件特别多, 上亿了, 我们就需要生成器的方式获取

# 要求目录下面没有目录, 会递归到子目录下面找文件, (如果有子目录可以在下面代码基础上做修改)

def gen_file(path, per_file_count): # 目录和一次想要回去的文件数量
  i = 0
  scandir_it = scandir(path) # 递归获取目录下文件, 返回迭代器
  while True:
    try:
      entry = next(scandir_it) # 取下一个文件
    except StopIteration: # 取空之后, 会报错
      logger.warning(path + "目录下没有文件")
      break
    if i == per_file_count:
      break
    i += 1
  yield entry.path, entry.name

for path, name in gen_file(path, count): # 参数是一次要获取数量(int)

python生成器 获取 目录下文件的更多相关文章

  1. C# 获取目录下文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 【python】获取目录下的最新文件夹/文件

    直接上代码 def new_report(test_report): lists = os.listdir(test_report) #列出目录的下所有文件和文件夹保存到lists print(lis ...

  3. python递归获取目录下指定文件

    获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_lis ...

  4. 【Unix编程】C/C++获取目录下文件或目录

    在Unix/Linux系统中,要获取一个指定目录下所有的文件或文件夹,一般用dirent.h(POSIX标准定义的目录操作头文件). 一.数据类型 在头文件<dirent.h>中定义了两种 ...

  5. WPF-TreeView获取文件夹目录、DataGrid获取目录下文件信息

    开发一个WPF桌面应用程序.刚接触WPF编程以及C#语言,这里把一些关键的问题记录下来. 下面是实现将路径的文件夹信息绑定到TreeView及DataGrid上显示. 关键问题是C#数据绑定方式及IE ...

  6. [Python]如何获取目录下,最后更新的文件

    #-*- coding: utf-8 -*- __author__ = 'tsbc' import time import datetime import os day = time.strftime ...

  7. python 遍历, 获取目录下所有文件名和文件夹的方法-----os.walk(), os.listdir

    http://www.runoob.com/python/os-walk.html https://www.cnblogs.com/dreamer-fish/p/3820625.html 转载于:ht ...

  8. python获取目录下文件夹名称

    path = '/opt' dirs = os.listdir(path) for dir in dirs: print dir

  9. 使用Python实现不同目录下文件的拷贝

    目标:要实现将一台计算机的共享文件夹中的文件备份到另一台计算机,如果存在同名的文件只要文件的大小和最后修改时间一致,则不拷贝该文件 python版本:Python3.7.1 python脚本: fro ...

随机推荐

  1. java使用jxl,poi解析excel文件

    public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...

  2. Ping--域名替换重要角色

    Ping-问答解惑 一.ping的概念?目的? 答: (1)ping是:在探测主机与主机之间是否可以通信,建立连接:若是源主机在一定时间内收到应答,则证明主机可达,用户不受影响. (2)ping的最终 ...

  3. Android 开发 蓝牙开发

    前言 蓝牙开发其实分2个部分,一个是正常蓝牙功能的开发(比如Android蓝牙的互相连接.读取蓝牙列表.文件传输.蓝牙耳机等等).另外一个是BLE蓝牙开发(属于低功耗蓝牙设备,设备大多是血糖仪.蓝牙手 ...

  4. scrapy-redis

    scrapy_redis的大概思路:将爬取的url通过 hashlin.sha1生成唯一的指纹,持久化存入redis,之后的url判断是否已经存在,达到去重的效果 下载scrapy-redis git ...

  5. html5自带表单验证

    起因:今天无意中发现chrome的input框自带表单验证!于是就去试试firefox,惊奇的发现也有自带的验证提示,只不过两者的样式不一样 chrome中的样子: firefox中的样子: 发散:具 ...

  6. Idea spring 配置文件报红 URI is not registered

    把报错的加到如下忽略列表中

  7. for循环,while循环,do while循环

    for循环: for循环格式: for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } 例子:取五位数各个位数的练习 public static void main(String[] ...

  8. H5自定义金额键盘,改良后ios体验效果流畅

    下载的别人的插件改良一下,源码地址:https://github.com/XieTongXue/how-to/tree/master/pay-h5 没有插件,直接来代码 <div class=& ...

  9. gitlab中批量删除本地以及远程tag的操作

    git 批量删除标签# 删除所有远程标签git show-ref --tag | awk '{print ":" $2}' | xargs git push origin # 删除 ...

  10. unfortunately,*********** has stopped及卸载模拟器上的多余不用apk

    虽然不知道是怎么了,但是项目进不去了,害的我一脸雾水,百度了下好像没什么人遇到过这问题,都没找到解决办法,那只好来个简单粗暴的,卸载重新安装apk ,希望有大神知道原因和其他方法的欢迎留言或者评价给出 ...