设为首页 收藏本站
查看: 508|回复: 0

[经验分享] Python学习笔记六--文件和输入输出

[复制链接]
累计签到:15 天
连续签到:1 天
发表于 2015-12-2 12:23:14 | 显示全部楼层 |阅读模式
  6.1文件对象
  所有Python对文件的操作都是基于对文件对象的操作。那么就从文件对象的创建说起。open()[file()]提供初始化输入输出的接口。open()成功打开文件时会返回一个文件对象。
  open()方法的语法:
  file_object=open(filename,access_mode,buffering)
  filename,表示要打开的文件名的字符串,可以是相对路径也可以是绝对路径。
  access_mode,表示打开方式。常见有'r'、'w'、'a',分别表示读模式,写模式,追加模式。带+表示可读可写,带b表示以二进制方式操作。
  buffering表示缓冲方式,0表示不缓冲,1表示缓冲1行,大于1的值作为缓冲区的大小。
  6.2文件内建方法
  6.2.1输入
  read()方法用来读取字节到字符串中。最多读取给定个字节,默认情况没有size参数,文件将读取到文件末尾。
  readline()方法读取打开文件的一行。然后整行包括行结束符,作为字符串返回。
  readlines()方法读取所有的行,然后作为字符串列表返回。
  6.2.2输出
  write(),与read(),readline()相反它将文本数据或二进制数据块写入文件。
  writelines(),接受一个字符串列表作为参数,将他们写入文件。
  6.2.3文件内移动
  seek()方法,可以在文件内移动文件指针到不同位置,默认值0表示文件起始,1表示从当前位置算起,2表示文件末尾算起。
  text(),他可以告诉你当前文件指针在文件的位置,从文件头算起以字节为单位。
  6.3文件迭代
  如果想迭代文件我们首先想到的是将文件读取到列表或者其他序列中再进行迭代。
  f=open('demo.txt','r')
  stringList=f.readlines()
  for eachstring in stringList:
  ...
  但事实上文件对象也是可迭代的,于是就有了:
  f=open('demo.txt','r')
  for eachline in f:
  ...
  6.4
  close()通过关闭文件结束对它的访问。 编程中不在引用某文件时需要关闭,别问为什么。
  fileno()方法返回打开的文件描述符。常用于底层操作。
  6.5文件系统
  对文件的访问大多通过OS模块实现。经常用到的对文件的操作有删除\重命名文件,遍历目录树,管理文件访问权限。另一个模块os.path模块可以完成一些针对目录名的操作。下面是一些常用的函数。
  6.5.1 文件操作类
  mkfifo(),创建命名管道。
  remove(),删除文件。
  rename(),重命名文件。
  utime(),更新时间戳。
  walk(),生成一个目录树下所有的文件名。
  2、目录/文件夹
  chdir(),改变当前工作目录。
  chroot(),改变的当前进程的目录。
  listdir(),列出制定目录的文件。
  mkdir()/makedirs(),创建目录/创建多层目录。
  rmdir()/removedirs(),删除目录/删除多层目录。
  3、访问/权限
  access(),检验权限模式。
  chmod(),改变权限模式。
  umask(),设置默认权限模式。
  6.5.2 os.path中的路径操作函数
  1、分隔
  basename(),去掉路径名返回文件名。
  dirname(),去掉文件名返回路径名。
  split(),返回(dirname(),basename())元组。
  2、信息
  getatime(),返回最近访问时间。
  getctime(),返回文件创建时间。
  getmtime(),返回文件修改时间。
  getsize(),返回文件大小。
  3、查询
  exists(),指定路径是否存在。
  
  6.6相关模块
  base64,提供二进制字符串和文本字符串的编码解码操作。
  bianascii,提供二进制和ASCII字符串的编码解码操作。
  bz2,访问bz2格式的压缩文件。
  fileinput,提供多个文本文件的行迭代器。
  shutil,提供高级文件访问功能。
  tarfile,读写tar归档文件,支持压缩文件。
  zipfile,读写zip归档文件的工具。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-146318-1-1.html 上篇帖子: leetcode-Count Primes 以及python的小特性 下篇帖子: 利用python实现Windows8定时自动关机和休眠
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表