Python os模块常用方法与属性详解
本文详细总结了Python中os模块的常用方法及属性,涵盖文件统计、创建、删除及路径处理等核心功能。通过具体代码示例,解析如何利用os模块进行文件属性获取、目录遍历及系统命令执行,为Python开发中的文件系统操作提供参考。
本文旨在系统梳理Python中os模块的常用方法与属性,通过具体代码示例进行详细解析,为读者的学习或实际工作提供具有参考价值的技术指南。
os模块常用属性与方法概览
首先介绍os模块中常用的基础方法及属性,这些功能是进行文件系统操作的核心。
os.sep:取代操作系统特定的路径分隔符
os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
os.getenv()和os.putenv:分别用来读取和设置环境变量
os.listdir():返回指定目录下的所有文件和目录名
os.remove(file):删除一个文件
os.stat(file): 获得文件属性
os.chmod(file): 修改文件权限和时间戳
os.mkdir(name): 创建目录
os.rmdir(name): 删除目录
os.removedirs(r“c:\python”): 删除多个目录
os.system(): 运行shell命令。os.system 的结果只是命令执行结果的返回值,执行成功为0
os.popen(command[, mode[, bufsize]]): os.popen() 方法用于从一个命令打开一个管道。popen返回的是file read的对象,对其进行读取使用read()
os.exit(): 终止当前进程
os.mknod(): 创建空文件
os.linesep: 给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
os.path.exist(): 检验给出的路径是否真的存在
os.listdir(dirname): 列出dirname下的目录和文件
os.getcwd(): 获得当前工作目录
os.curdir: 返回当前目录('.')
os.chdir(dirname): 改变工作目录到dirname
os.path.isdir(name): 判断name是不是目录,不是目录就返回false
os.path.isfile(name): 判断name这个文件是否存在,不存在返回false
os.path.exists(name): 判断是否存在文件或目录name
os.path.getsize(name): 或得文件大小,如果name是目录返回0L
os.path.getatime(path): 返回上次访问路径的时间,返回值是一个浮点数
os.path.getmtime(path): 返回上次修改一路径的时间,返回值是一个浮点数
os.path.getctime(path): 返回系统的ctime,在某些系统(如Unix)上是最后一次元数据更改的时间,而在其他系统(如Windows)上则是路径的创建时间。返回值是一个数字
os.path.abspath(name): 返回一个目录的绝对路径
os.path.realpath(path): 返回指定文件的标准路径,而非软链接所在的路径
os.path.isabs(): 判断是否为绝对路径
os.path.normpath(path): 规范path字符串形式。示例: os.path.normpath('c://windows\\System32\\../Temp/') # 输出'c:\\windows\\Temp'
os.path.split(name): 分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),示例: ('F:/Technology-20161005/python/python_project/demo/os_sysdemo', 'sysdemo.py')
os.path.splitext(): 分离文件名和扩展名 # ('F:/Technology-20161005/python/python_project/demo/os_sysdemo/sysdemo', '.py')
os.path.join(path,name): 连接目录与文件名或目录
os.path.basename(path): 返回文件名
os.path.dirname(path): 返回文件路径
常用文件操作示例
接下来深入探讨几个高频使用的方法及其应用场景。
统计已创建文件
针对统计当前目录下已创建文件的需求,可以通过遍历目录并结合时间戳判断来实现。
current_path = os.path.realpath('.')
start_time = time.time()
# 判断当前路径下比当前时刻早的已经创建的文件
created_files = [name for name in os.listdir(current_path) if os.path.isfile(os.path.join(current_path, name)) and
os.path.getctime(os.path.join(current_path, name)) < start_time]
print created_files
统计后创建文件
若需统计当前目录下后创建的文件,逻辑类似,但比较条件需调整为检查文件的修改时间是否晚于指定时刻。
current_path = os.path.realpath('.')
start_time = time.time()
# 判断当前路径下后创建的文件
created_files = [name for name in os.listdir(current_path) if os.path.isfile(os.path.join(current_path, name)) and
os.path.getmtime(os.path.join(current_path, name)) > start_time]
print created_files
安全删除文件
在文件删除操作中,为确保程序健壮性,建议采用异常处理机制来静默处理文件不存在的情况。
import os, errno
def silent_remove_of_file(file):
try:
os.remove(file)
except OSError as e:
if e.errno != errno.ENOENT:
raise e
return False
return True
以上内容构成了本文的核心知识点,希望能为读者的技术积累提供有益帮助,欢迎持续关注与分享。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













