问题

获取文件系统中某个目录下的所有文件列表。

解决方案

使用 os.listdir() 函数来获取某个目录中的文件列表,比如:

import os

file_name = os.listdir('/Users/xz/test')

print(file_name)

['Bath.txt', 'test.py', '2.txt', '1.txt', 'cook.txt']

结果会返回目录中所有文件列表,包括所有文件,子目录,符号链接等等。 如果需要通过某种方式过滤数据,可以考虑结合 os.path 库中的一些函数来使用列表推导。比如:

import os.path

names = [name for name in os.listdir('/Users/xz/test')

if os.path.isfile(os.path.join('/Users/xz/test', name))]

print(names)

['Bath.txt', 'test.py', '2.txt', '1.txt', 'cook.txt']

字符串的 startswith() 和 endswith() 方法对于过滤一个目录的内容也是很有用的。比如:

pyname = [name for name in os.listdir('/Users/xz/test') if name.endswith('.py')]

print(pyname)

['test.py']

对于文件名的匹配,你可能会考虑使用 glob 或 fnmatch 模块。比如:

import glob

pyname = glob.glob('/Users/xz/test/*.py')

print(pyname)

['/Users/xz/test/test.py']

from fnmatch import fnmatch

pyname = [name for name in os.listdir('/Users/xz/test') if fnmatch(name, '*.py')]

print(pyname)

['test.py']

讨论

通过上述的几种方法,均可以获取目录中的文件列表,但是其返回结果只是目录中实体名列表而已。

如果想获取文件的其他元数据,比如文件大小,修改时间等等,需要使用到 os.path 模块中的函数,或os.stat() 函数来收集数据。比如:

# Get file sizes and modification dates

name_sz_dt = [(name, os.path.getsize(name), ar.get(os.path.getmtime(name)).format("YYYY-MM-DD HH:mm:ss"))

for name in pyfile]

for name, sizes, date in name_sz_dt:

print(name, sizes, date)

/Users/xz/test/test.py 214 2018-11-29 14:03:02

# Alternative: Get file metadata

file_metadata = [(name, os.stat(name)) for name in pyfile]

for name, meta in file_metadata:

print(name, meta.st_size, ar.get(meta.st_mtime).format("YYYY-MM-DD HH:mm:ss"))

/Users/xz/test/test.py 214 2018-11-29 14:03:02

需要注意的是,有时候在处理文件名编码问题时,可能会出现一些问题。 通常,函数 os.listdir()返回的实体列表是根据系统默认的文件名编码进行解码。 但有时候也会遇到一些不能正常解码的文件名。

python 获取文件列表_Python3 - 获取文件夹中的文件列表相关推荐

  1. 文件管理搜不到Android 里的文件,Android:在原始文件夹中添加文件后窗口找不到内容容器视图...

    正在获取窗口找不到内容容器视图.这个错误询问应用程序何时将检查权限Android:在原始文件夹中添加文件后窗口找不到内容容器视图 我注意到,对于穿着应用程序,我正在将穿着apk复制到原始文件夹中.它有 ...

  2. Python 获取文件夹中的文件列表

    获取文件夹中的文件列表 问题 你想获取文件系统中某个目录下的所有文件列表. 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表: import os names = os.lis ...

  3. 获取文件夹中所有文件的文件名[重复]

    本文翻译自:Getting the filenames of all files in a folder [duplicate] Possible Duplicate: 可能重复: Read all ...

  4. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

  5. python保存文件夹中的文件路径(绝对路径)

    保存文件夹中的文件路径(绝对路径). # !/usr/bin/env python # -*- encoding: utf-8 -*-import osimg_path = '/home/jjuv/D ...

  6. 超详细:Java 读取 Windows 共享文件夹中的文件,并下载到本地电脑中

    目录 JCIFS 介绍 SMB协议 设置共享文件夹(这里我们选择有密码的方式进行共享) 是否设置密码 创建 smb 协议 测试 使用代码将文件夹里的文件下载到本地 项目常常需要有访问共享文件夹的需求, ...

  7. mvfiles:一次性提取多个文件夹中的文件

      作者:吴玉轩 (南开大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN   Stata连享会 精品专题 || 精彩推文 2019暑期"实证研究方法与经典论文" ...

  8. C++读取文件夹中所有文件的路径,包含子文件夹

    C++读取文件夹中所有文件的路径,包含子文件夹 C++实现指定文件夹的路径,获取该路径下所有文件的路径,含子文件夹的文件,为了实现跨平台编译,最后会给出Window和Linux的完成程序: [1]下面 ...

  9. 使用C语言查看一个文件夹中所有文件及目录

    1.前言 1.1声明 文章中的文字可能存在语法错语以及标点错误,请谅解: 如果在文章中发现代码错误或其它问题请告知,感谢! 2.实现方法 为了使用C语言实现查看一个文件夹中的文件数量功能,可以使用di ...

  10. java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件

    递归删除文件夹中所有文件 要递归首先需要有方法.递归,即方法自己调用自己.一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套. 递归两个重要条件: 终止边界 ...

最新文章

  1. Nature子刊:微生物系统中的功能与功能冗余
  2. stl的set,multiset, map, multimap, deque, list, stack, queue, priority_queue
  3. 读书笔记《单核工作法》_6:颠倒you'xian'ji
  4. html5中如何去掉input type date默认
  5. svm解决兵王问题_机器学习: svm
  6. 第二十节: 深入理解并发机制以及解决方案(锁机制、EF自有机制、队列模式等)
  7. git switch
  8. 安川机器人焊枪切换设定方法_【分享】焊接机器人的性能要求与系统构成
  9. React中那些纠结你的地方(一)
  10. 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数
  11. Android优美代码赏析:Snake游戏分析
  12. python分析图片内容_Python实现识别图片内容的方法分析
  13. Java自学教程二:JavaWeb教程
  14. 【目标检测】YOLOv2 ,对YOLOv1的多种改进
  15. meta—learning调研及MAML概述
  16. Off-line Programming 离线编程 简明教程
  17. python清理数据
  18. 安卓Dalvik VM虚拟机
  19. 罗大佑的童年用计算机咋弹,罗大佑《童年》吉他弹奏教学-520吉他网
  20. 软件工程导论第六版 第一章 软件工程学概述知识点总结(下)

热门文章

  1. 如何看创建媒体日期_汽车各零部件也有身份证,教你们如何看这些部件的出生日期...
  2. 媒体查询响应式布局的几个尺寸_媒体查询实现响应式布局
  3. vue function (i)第一次点击不执行_vue下$nextTick及原理浅析
  4. python+OpenCV图像处理(一)读取、复制、显示、保存
  5. Django——多个数据库
  6. 如何通俗理解计算机视觉、计算机图形、图像处理之间的区别与联系
  7. Oracle 软件的安装
  8. 开源 Python网络爬虫框架 Scrapy
  9. 男人女人小孩共32人c语言,C编程核心要点,你确信你会C语言?看完之后,男人沉默,女人流泪...
  10. 得到品控手册_得到品控手册 一本令人惊喜的说明书