【学习】Python os模块常用方法 记录
记录一些工作中常用到的用法
os.walk()
模块os中的walk()函数可以遍历文件夹下所有的文件。
os.walk(top, topdown=Ture, onerror=None, followlinks=False)
该函数可以得到一个三元元组 tupple(dirpath, dirnames, filenames).
参数含义:
dirpath:string,代表目录的路径;
dirnames:list,包含了当前dirpath路径下所有的子目录名字(不包含目录路径);
filenames:list,包含了当前dirpath路径下所有的非目录子文件的名字(不包含目录路径)。
注意,dirnames和filenames均不包含路径信息,如需完整路径,可使用os.path.join(dirpath, dirnames)
import os for root, dirs, files in os.walk(r'D:\test'):
for dir in dirs:
print(os.path.join(root, dir))
for file in files:
print(os.path.join(root, file))
当需要特定类型的文件时
# !/usr/bin/env python
# -*- coding:utf-8 -*- import os def file_name(file_dir):
FileList=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.jpg':
FileList.append(os.path.join(root, file))
return FileList
其中os.path.splitext()函数将路径拆分为文件名+扩展名,例如 os.path.splitext(“E:\IDCard\love.jpg”) 将得到 ('E:\\IDCard\\love', '.jpg')
os.listdir()
os.listdir()函数得到的是指定路径下的文件名,不包括子目录中的文件,所有需要使用递归的方法得到全部文件名。
直接给出代码,函数将返回类型为‘.jpg’个文件名:
# !/usr/bin/env python
# -*- coding:utf-8 -*- import os def listdir(path, list_name):
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
listdir(file_path, list_name)
elif os.path.splitext(file_path)[1]=='.jpg':
list_name.append(file_path)
os.path()
os.path() 模块主要用于获取文件的属性。
以下是 os.path() 模块的几种常用方法:
| 方法 | 说明 |
|---|---|
| os.path.abspath(path) | 返回绝对路径 |
| os.path.basename(path) | 返回文件名 |
| os.path.commonprefix(list) | 返回list(多个路径)中,所有path共有的最长的路径 |
| os.path.dirname(path) | 返回文件路径 |
| os.path.exists(path) | 如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。 |
| os.path.lexists | 路径存在则返回True,路径损坏也返回True |
| os.path.expanduser(path) | 把path中包含的"~"和"~user"转换成用户目录 |
| os.path.expandvars(path) | 根据环境变量的值替换path中包含的"$name"和"${name}" |
| os.path.getatime(path) | 返回最近访问时间(浮点型秒数) |
| os.path.getmtime(path) | 返回最近文件修改时间 |
| os.path.getctime(path) | 返回文件 path 创建时间 |
| os.path.getsize(path) | 返回文件大小,如果文件不存在就返回错误 |
| os.path.isabs(path) | 判断是否为绝对路径 |
| os.path.isfile(path) | 判断路径是否为文件 |
| os.path.isdir(path) | 判断路径是否为目录 |
| os.path.islink(path) | 判断路径是否为链接 |
| os.path.ismount(path) | 判断路径是否为挂载点 |
| os.path.join(path1[, path2[, ...]]) | 把目录和文件名合成一个路径 |
| os.path.normcase(path) | 转换path的大小写和斜杠 |
| os.path.normpath(path) | 规范path字符串形式 |
| os.path.realpath(path) | 返回path的真实路径 |
| os.path.relpath(path[, start]) | 从start开始计算相对路径 |
| os.path.samefile(path1, path2) | 判断目录或文件是否相同 |
| os.path.sameopenfile(fp1, fp2) | 判断fp1和fp2是否指向同一文件 |
| os.path.samestat(stat1, stat2) | 判断stat tuple stat1和stat2是否指向同一个文件 |
| os.path.split(path) | 把路径分割成 dirname 和 basename,返回一个元组 |
| os.path.splitdrive(path) | 一般用在 windows 下,返回驱动器名和路径组成的元组 |
| os.path.splitext(path) | 分割路径,返回路径名和文件扩展名的元组 |
| os.path.splitunc(path) | 把路径分割为加载点与文件 |
| os.path.walk(path, visit, arg) | 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数 |
| os.path.supports_unicode_filenames | 设置是否支持unicode路径名 |
【学习】Python os模块常用方法 记录的更多相关文章
- python os模块常用方法
OS模块是Python标准库中的一个操作模块,主要用于处理Linux操作系统中的文件和目录 1.要使用OS必须先导入OS import os 2.os.getcwd()获取当前路径. print os ...
- python os模块常用方法总结
该模块提供一种便捷的方式来操作系统 os.environ:返回系统环境变量 os.getenv(env):返回环境变量env的值 os.getpid():当前程序的进程 os.uname():返回一个 ...
- Python 模块学习:os模块
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...
- [转] Python 模块学习:os模块
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...
- python os模块学习
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输出字符串指示正在使用的平台.如果是wi ...
- python模块学习:os模块
一.os模块概述 Python os模块包含普遍的操作系统功能.例如文件的复制.创建.修改.删除文件及文件夹... 二.常用方法 1.os.listdir() 返回指定目录下的所有文件和目录名. ...
- Python::OS 模块 -- 进程管理
os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...
- Python::OS 模块 -- 进程参数
os模块的简介请参看 Python::OS 模块 -- 简介 os模块的文件和目录操作 Python::OS 模块 -- 文件和目录操作 os模块的进程管理 Python::OS 模块 -- 进程管理 ...
- Python::OS 模块 -- 文件和目录操作
os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...
随机推荐
- 数学--数论--直角三角形--勾股数---奇偶数列法则 a^2+b^2=c^2
先说勾股数: 勾股数,又名毕氏三元数 .勾股数就是可以构成一个直角三角形三边的一组正整数.勾股定理:直角三角形两条直角边a.b的平方和等于斜边c的平方(a²+b²=c²) 勾股数规律: 首先是奇数组口 ...
- Codeforce 239 B. Easy Tape Programming
There is a programming language in which every program is a non-empty sequence of "<" a ...
- muduo网络库源码学习————日志类封装
muduo库里面的日志使方法如下 这里定义了一个宏 #define LOG_INFO if (muduo::Logger::logLevel() <= muduo::Logger::INFO) ...
- 纯django开发最完美博客
2020年5月打造最时尚博客系统教程 为了学习速度,集中精力学习django和博客开发, 没有使用其它框架,也没有使用css预处理等 这样学起来最方便, 博客前后端都完成, www.duanshuil ...
- 集训模拟赛-1-T2
好了不要在铺垫了直接整吧就 题目拿来!!!!!!! 倒水 (water) (256MB,1s) [问题描述] 你有一个水桶(记为 0),两个杯子(记为 1,2).水桶中的水量无限,容量也无限.1 号杯 ...
- Python第三方库之Numpy库
概述 Numpy 最基本的库,是用于处理含有同种元素的多维数组运算的第三方库 —科学计算包,python数据分析及科学计算的基础库,几乎支撑所有其他库 —支持N维数组运算.处理大型矩阵.成熟的广播函 ...
- S - Making the Grade POJ - 3666 结论 将严格递减转化成非严格的
S - Making the Grade POJ - 3666 这个题目要求把一个给定的序列变成递增或者递减序列的最小代价. 这个是一个dp,对于这个dp的定义我觉得不是很好想,如果第一次碰到的话. ...
- 单调队列+二分 G - Queue 小阳买水果
B. Queue 这个题目会做的很偶然,突然想到的,因为我们要求离这只海象的最远的比他年轻的海象,这个年轻的海象可以用单调栈维护. 就是从前往后遍历一遍,单调栈里面存年龄从小往大的海象,这个为什么这么 ...
- 07_CSS入门和高级技巧(5)
超级链接美化 1.伪类 同一个超级链接,根据用户的点击情况,有自己样式: 超级链接根据用户点选情况,有4种状态: a:link 没有访问的超级链接 a:visited 已经访问的超级链接 a:hove ...
- C++单例写法
#define __xx(WaveClassFile::me()) class Xx : public QObject{ Q_OBJECT public: static Xx & me(); ...