python 获取文件列表_Python3 - 获取文件夹中的文件列表
问题
获取文件系统中某个目录下的所有文件列表。
解决方案
使用 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 - 获取文件夹中的文件列表相关推荐
- 文件管理搜不到Android 里的文件,Android:在原始文件夹中添加文件后窗口找不到内容容器视图...
正在获取窗口找不到内容容器视图.这个错误询问应用程序何时将检查权限Android:在原始文件夹中添加文件后窗口找不到内容容器视图 我注意到,对于穿着应用程序,我正在将穿着apk复制到原始文件夹中.它有 ...
- Python 获取文件夹中的文件列表
获取文件夹中的文件列表 问题 你想获取文件系统中某个目录下的所有文件列表. 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表: import os names = os.lis ...
- 获取文件夹中所有文件的文件名[重复]
本文翻译自:Getting the filenames of all files in a folder [duplicate] Possible Duplicate: 可能重复: Read all ...
- java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...
package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...
- python保存文件夹中的文件路径(绝对路径)
保存文件夹中的文件路径(绝对路径). # !/usr/bin/env python # -*- encoding: utf-8 -*-import osimg_path = '/home/jjuv/D ...
- 超详细:Java 读取 Windows 共享文件夹中的文件,并下载到本地电脑中
目录 JCIFS 介绍 SMB协议 设置共享文件夹(这里我们选择有密码的方式进行共享) 是否设置密码 创建 smb 协议 测试 使用代码将文件夹里的文件下载到本地 项目常常需要有访问共享文件夹的需求, ...
- mvfiles:一次性提取多个文件夹中的文件
作者:吴玉轩 (南开大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN Stata连享会 精品专题 || 精彩推文 2019暑期"实证研究方法与经典论文" ...
- C++读取文件夹中所有文件的路径,包含子文件夹
C++读取文件夹中所有文件的路径,包含子文件夹 C++实现指定文件夹的路径,获取该路径下所有文件的路径,含子文件夹的文件,为了实现跨平台编译,最后会给出Window和Linux的完成程序: [1]下面 ...
- 使用C语言查看一个文件夹中所有文件及目录
1.前言 1.1声明 文章中的文字可能存在语法错语以及标点错误,请谅解: 如果在文章中发现代码错误或其它问题请告知,感谢! 2.实现方法 为了使用C语言实现查看一个文件夹中的文件数量功能,可以使用di ...
- java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件
递归删除文件夹中所有文件 要递归首先需要有方法.递归,即方法自己调用自己.一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套. 递归两个重要条件: 终止边界 ...
最新文章
- Nature子刊:微生物系统中的功能与功能冗余
- stl的set,multiset, map, multimap, deque, list, stack, queue, priority_queue
- 读书笔记《单核工作法》_6:颠倒you'xian'ji
- html5中如何去掉input type date默认
- svm解决兵王问题_机器学习: svm
- 第二十节: 深入理解并发机制以及解决方案(锁机制、EF自有机制、队列模式等)
- git switch
- 安川机器人焊枪切换设定方法_【分享】焊接机器人的性能要求与系统构成
- React中那些纠结你的地方(一)
- 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数
- Android优美代码赏析:Snake游戏分析
- python分析图片内容_Python实现识别图片内容的方法分析
- Java自学教程二:JavaWeb教程
- 【目标检测】YOLOv2 ,对YOLOv1的多种改进
- meta—learning调研及MAML概述
- Off-line Programming 离线编程 简明教程
- python清理数据
- 安卓Dalvik VM虚拟机
- 罗大佑的童年用计算机咋弹,罗大佑《童年》吉他弹奏教学-520吉他网
- 软件工程导论第六版 第一章 软件工程学概述知识点总结(下)
热门文章
- 如何看创建媒体日期_汽车各零部件也有身份证,教你们如何看这些部件的出生日期...
- 媒体查询响应式布局的几个尺寸_媒体查询实现响应式布局
- vue function (i)第一次点击不执行_vue下$nextTick及原理浅析
- python+OpenCV图像处理(一)读取、复制、显示、保存
- Django——多个数据库
- 如何通俗理解计算机视觉、计算机图形、图像处理之间的区别与联系
- Oracle 软件的安装
- 开源 Python网络爬虫框架 Scrapy
- 男人女人小孩共32人c语言,C编程核心要点,你确信你会C语言?看完之后,男人沉默,女人流泪...
- 得到品控手册_得到品控手册 一本令人惊喜的说明书