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

[经验分享] python open 回忆

[复制链接]

尚未签到

发表于 2017-4-23 06:32:27 | 显示全部楼层 |阅读模式
python open 回忆
2011年05月13日
  python:open/文件操作open/文件操作
  f=open('/tmp/hello','w')
  #open(路径+文件名,读写模式)
  #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
  如:'rb','wb','r+b'等等
  f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
  file.readline() 返回一行
  file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
  for line in f: print line #通过迭代器访问
  f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
  f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
  f.seek(偏移量,[起始位置])
  用来移动文件指针
  偏移量:单位:比特,可正可负
  起始位置:0-文件头,默认值;1-当前位置;2-文件尾
  f.close() 关闭文件
  Code:
  #!/usr/bin/env python
  # Filename: using_file.py
  poem='''\Programming is funWhen the work is doneif you wanna make your work also fun: use Python!'''
  f=file('poem.txt','w') # open for 'w'riting
  f.write(poem) # write text to file
  f.close() # close the file
  f=file('poem.txt')
  # if no mode is specified, 'r'ead mode is assumed by default
  while True:
  line=f.readline()
  if len(line)==0: # Zero length indicates EOF
  break
  print line,
  # Notice comma to avoid automatic newline added by Python
  f.close()
  # close the file
  1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
  
  
  file_object= open('thefile.txt')
  
  
  try:
  
  
   all_the_text = file_object.read( )
  
  
  finally:
  
  
   file_object.close( )
  注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。
  2.读文件读文本文件
  
  input= open('data', 'r')
  
  
  #第二个参数默认为r
  
  
  input= open('data')
  读二进制文件
  
  input= open('data', 'rb')
  读取所有内容
  
  file_object= open('thefile.txt')
  
  
  try:
  
  
   all_the_text = file_object.read( )
  
  
  finally:
  
  
   file_object.close( )
  读固定字节
  
  file_object= open('abinfile', 'rb')
  
  
  try:
  
  
   whileTrue:
  
  
   chunk =file_object.read(100)
  
  
   ifnot chunk:
  
  
   break
  
  
   do_something_with(chunk)
  
  
  finally:
  
  
   file_object.close( )
  读每行
  
  list_of_all_the_lines = file_object.readlines( )
  如果文件是文本文件,还可以直接遍历文件对象获取每行:
  
  
  forline in file_object:
  
  
   process line
  3.写文件写文本文件
  
  output= open('data', 'w')
  写二进制文件
  
  output= open('data', 'wb')
  追加写文件
  
  output= open('data', 'w+')
  写数据
  
  file_object= open('thefile.txt', 'w')
  
  
  file_object.write(all_the_text)
  
  
  file_object.close( )
  写入多行
  
  file_object.writelines(list_of_text_strings)
  注意,调用writelines写入多行在性能上会比使用write一次性写入要高。
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
  w     以写方式打开 (必要时清空)
  a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
  r+     以读写模式打开
  w+     以读写模式打开 (参见 w )
  a+     以读写模式打开 (参见 a )
  rb     以二进制读模式打开
  wb     以二进制写模式打开 (参见 w )
  ab     以二进制追加模式打开 (参见 a )
  rb+    以二进制读写模式打开 (参见 r+ )
  wb+    以二进制读写模式打开 (参见 w+ )
  ab+    以二进制读写模式打开 (参见 a+ )
  a.     Python 2.3 中新增

运维网声明 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-367915-1-1.html 上篇帖子: python django 服务器搭建 下篇帖子: python庫收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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