python学习[第十五篇] 文件系统

对文件系统访问大多数都通过os模块实现。

os 模块文件/目录访问函数

文件处理

mkfifo() 创建命名通道只用于linux

remove(path)/unlink(path)删除文件

rename()/renames() 重命名文件

stat() 返回文件信息

symlink() 创建连接,只用于linux

utime() 更新文件时间戳

walk() 生成一个目录下的所有文件

#remove
>>> os.remove("D:/cmdargs.py")#rename
>>> os.renames('D:/ryan/ryan.txt','D:/ryan2/ryan2.txt')
#stat
>>> os.stat('D:/ryan.txt')
nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0L, st_nlink=0, st_uid=0, st_gid
=0, st_size=152L, st_atime=1532525071L, st_mtime=1532525088L, st_ctime=153252507
1L)
#utime
>>> os.utime('D:/ryan2/ryan2.txt',None)#walk
>>> x=os.walk('D:/ryan2')
>>> for y in x:
...     print y
...
('D:/ryan2', [], ['ryan2.txt'])#tmpfile
>>> f=os.tmpfile()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied

目录/文件夹

getcwd() /getcwdu() 返回当前工作目录/返回当前目录,以unicode字符串的形式

listdir() 列出指定目录的文件

mkdir()/makedirs() 创建目录/创建多层目录

rmdir() /removedirs() 删除目录/删除多层目录

chdir() 改变当前目录

chroot()改变当前进程的根目录 linux /unix

>>> os.getcwd()
'D:\\ryan2'
>>> os.getcwdu()
u'D:\\ryan2'>>> os.chdir('d:/ryan')
#chdir 目录不存在的话,会报WindowsError
>>> os.chdir('d:/ryan3')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
WindowsError: [Error 2] : 'd:/ryan3'>>> os.listdir('c:/')
['$Recycle.Bin', 'AMD', 'BaiduNetdiskDownload', 'bef7a4d9c1ea713f1cedd1669f7c7a08', 'comments.txt', 'cookie.txt', 'Documents and Settings', 'DRIVERS', 'DRMsoft'
, 'hiberfil.sys', 'Intel', 'jdk', 'MyDrivers', 'pagefile.sys', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Python27', 'Python37', 'QMDownload', 'qqpcmgr_docpro', 'Recovery', 'sqlite', 'Sun', 'System Volume Informatio
n', 'test.py', 'Users', 'vs2013', 'Windows', '\xd0\xc2\xbd\xa8\xce\xc4\xbc\xfe\xbc\xd0', '\xd1\xb8\xc0\xd7\xcf\xc2\xd4\xd8']>>> os.makedirs('D:/ryan2/ryan2/ryan2')
>>> os.mkdir('ryan2')>>> os.rmdir('ryan2')
>>> os.removedirs('D:/ryan/ryan2')

访问权限

access() 检验权限模式

chmod() 改变权限模式

chown() 修改owner和goroupID

文件描述符专用

open()

read()/write()

dup/dup2()

os.path 模块中路径名访问函数

分隔

basename(path)去掉目录路径返回文件名

dirname(path) 去掉文件名,返回目录路径

join(path,path2) 将分离的各部分组成一个路径名

split(path) 返(dirname,basename) 元组

splitdirve(path) 返回 (drivename,pathname)元组

splittext(path) 返回(filename,extension)元组

>>> os.path.basename('c:/ryan2/test.py')
'test.py'>>> os.path.dirname('c:/ryan2/test.py')
'c:/ryan2'
>>> os.path.split('c:/ryan2/test.py')
('c:/ryan2', 'test.py')>>> os.path.splitext('c:/ryan2/test.py')
('c:/ryan2/test', '.py')>>> os.path.splitdrive('c:/ryan2/test.py')
('c:', '/ryan2/test.py')>>> os.path.join('c:/foo/','test.txt')
'c:/foo/test.txt'

信息

getatime(path) 返回最近访问时间

getctime(path) 返回文件创建时间

getmtime(path)返回文件修改时间

getsize(path) 返回文件大小

>>> os.path.getatime('ryan.txt')
1532525145.1479454
>>> os.path.getctime('ryan.txt')
1532525145.1479454
>>> os.path.getmtime('ryan.txt')
1532525088.2246895
>>> os.path.getsize('ryan.txt')
152L

查询

exists(path) 判断文件或目录是否存在

isabs(path) 判断是否是绝对路径

isdir(path) 判断是否是目录

isfile(path) 判读是否是文件

islink(path) 判断是否是连接

ismount(path) 判断是否是挂载点

samefile(path1,path2) 是否是同样的文件 unix

>>> os.path.exists('ryan.txt')
True
>>> os.path.exists('test')
True>>> os.path.isabs('test')
False>>> os.path.isdir('test')
True
>>> os.path.isdir('test1')
False>>> os.path.isfile('test')
False
>>> os.path.isfile('ryan.txt')
True>>> os.path.islink('ryan.txt')
False
>>> os.path.ismount('c:')
False>>> os.path.samefile('ryan.txt','ryan2.txt')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'samefile'

###end

转载于:https://www.cnblogs.com/ryanpan/p/9363602.html

python学习[第十五篇] 文件系统相关推荐

  1. python连载第十五篇~史上最全列表知识源码+答案

    #2017-12-19 19:34:41 December Tuesday the 51 week, the 353 day #python连载第十五篇~list列表#列表定义,访问,索引,操作,切片 ...

  2. python学习[第十四篇] 文件的输入与输出

    python学习[第十四篇] 文件的输入与输出 标准文件类型 一般来说只要程序一执行,就会访问3个文件: 标准输入(键盘) stdin 标准输出(显示器缓冲区) stdout 默认输出到屏幕 标准错误 ...

  3. Python学习第十六篇——异常处理

    在实际中,很多时候时候,我们并不能保证我们所写的程序是完美的.比如我们程序的本意是:用户在输入框内输入数字,并进行后续数学运算,即使我们提醒了用户需要输入数字而不是文本,但是有时会无意或者恶意输入字符 ...

  4. python学习第十五天

    1.面向对象和面向过程 面向过程: 以我为中心. 按照事物的发展"流程". 面向对象: 以对象为中心. 万事万物皆为对象(object) 2.如何编写面向对象程序(重点) 先创建类 ...

  5. python学习笔记(十五) -- 枚举

    枚举 枚举的作用就是定义一组 数据形式为 dict 但却又不可变的常量 比如我们定义一个类,或者定义一个dict ,类中的成员变量可以被更改,而且类又可以被实例化,dict 里面的值也可以被更改. 如 ...

  6. python学习笔记十五:日期时间处理笔记

    #-*- coding: utf-8 -*- import datetime#给定日期向后N天的日期 def dateadd_day(days):d1 = datetime.datetime.now( ...

  7. 【Python学习系列十五】pandas库DataFrame行列操作使用方法

    参考:http://pandas.pydata.org/pandas-docs/stable/api.html#dataframe data['w'] #选择表格中的'w'列,使用类字典属性,返回的是 ...

  8. Python学习日记(十五) collections模块

    在内置函数(dict.list.set.tuple)的基础上,collections模块还提供了几个其他的数据类型:Counter.deque.defaultdict.namedtuple和Order ...

  9. JavaScript 设计模式学习第二十五篇-中介者模式

    中介者模式(Mediator Pattern)又称调停模式,使得各对象不用显式地相互引用,将对象与对象之间紧密的耦合关系变得松散,从而可以独立地改变他们.核心是多个对象之间复杂交互的封装. 根据最少知 ...

最新文章

  1. Gogs-Windows Server下搭建Git服务器
  2. 对字符串数组排序,使所有变位词都相邻(C++)
  3. 北斗导航 | 微惯导定位系统关键技术与应用
  4. HDU 5389 Zero Escape
  5. IPv6 RIPng (PT)
  6. 高精度加法(A+BProblemII)
  7. 探究操作系统的内存分配(malloc)对齐策略
  8. Android DownloadManager 的使用
  9. PC-hosts 的使用 [可使电脑无法正常上网]
  10. HTML 区块、内联元素
  11. vue修改编码_看,官方出品了 Vue 编码风格指南!
  12. Luogu2602[ZJOI2010] 数字计数
  13. 图片求导锐化 与模糊检测
  14. java生存pdf资料
  15. VTK:图像平滑——中值滤波器
  16. 软件设计师考试考点分析总结
  17. 遇到电脑中病毒了怎么办
  18. SQLSERVER2012备份日志报错:”读取失败: 23(数据错误(循环冗余检查)。)”
  19. fpga 速度等级(speed grade)
  20. the info.plist in the package must contain the CFBundleShortVersionString key.

热门文章

  1. MSXML2.ServerXMLHTTP HTTPS 证书过期 — msxml3.dll '80072f05'
  2. 设置harbor开机自启动
  3. 一品资源网自用官网模板源码下载站(带手机模板)
  4. matlab word报告,MATLAB 实验报告
  5. 神舟服务器安装系统,神舟UT47笔记本一键u盘装系统win10教程
  6. JsonView--离线查看JSON格式化工具
  7. Mysql5.7.x下载安装及64位操作系统问题
  8. android ble配对绑定,Android蓝牙(一)搜索配对和绑定
  9. 2022年4月线上终端药品增长迅猛,市场政策合规进程加快
  10. element-ui日期时间选择框picker-options如何禁用时间范围