zoukankan      html  css  js  c++  java
  • 文件操作总结(1)

      1 #!/usr/bin/env python
      2 # -*- coding:utf-8 -*-
      3 # Author:James Tao
      4 
      5 #取文件对象
      6 f=open('yesterday','r',encoding='utf-8')#文件句柄
      7 #关闭文件
      8 f.close()
      9 
     10 #操作文件
     11 #
     12 f=open('yesterday','r',encoding='utf-8')
     13 data=f.read()
     14 data2=f.read()
     15 f.close()
     16 print(data)
     17 print(data2) #data2不会被打印,因为data读完之后指针在文件最后,data2读不到内容
     18 
     19 #
     20 f=open('yesterday2','w',encoding='utf-8')#注意!w是创建一个文件,之前文件被覆盖
     21 f.write('啊啊啊啊
    ')
     22 f.write('噢噢噢噢')
     23 f.close()
     24 
     25 #追加
     26 f=open('yesterday2','a',encoding='utf-8')
     27 f.write('哎呀有')
     28 f.close()
     29 
     30 #只读前几行
     31 f=open('yesterday','r',encoding='utf-8')
     32 for i in range(5):
     33     print(f.readline())
     34 f.close()
     35 
     36 f=open('yesterday','r',encoding='utf-8')
     37 for line in f.readlines():#f.readlines()函数返回一个列表,每一行一个元素
     38     print(line.strip()) #strip函数去除字符串首位的空格和回车
     39 f.close()
     40 
     41 #不打印第几行
     42 f=open('yesterday','r',encoding='utf-8')
     43 for index,line in enumerate(f.readlines()):#f.readlines()函数返回一个列表,每一行一个元素
     44     if index==9:
     45         continue
     46     print(line.strip())
     47 f.close()
     48 #f.readline读一行就立即往内存里存一行,只适合读小文件
     49 
     50 #占内存小更高效的方法
     51 f=open('yesterday','r',encoding='utf-8')
     52 count=0
     53 for line in f: #f为一个迭代器
     54     if count==9:
     55         count+=1
     56         continue
     57     print(line)
     58     count+=1
     59 f.close()
     60 
     61 f=open('yesterday','r',encoding='utf-8')
     62 print(f.tell())#打印读文件的指针位置
     63 print(f.read(5))
     64 print(f.readline())
     65 print(f.tell())
     66 
     67 f.seek(10)#将指针固定到某位置
     68 print(f.readline())
     69 f.close()
     70 
     71 f=open('yesterday','r',encoding='utf-8')
     72 print(f.encoding)#打印文件所用的编码
     73 print(f.fileno())#返回文件所在地址的编号
     74 print(f.name())#打印文件名字
     75 print(f.seekable())#判断读文件指针是否可移
     76 print(f.readable())#判断文件是否可读
     77 print(f.writable())#判断文件是否可写
     78 
     79 
     80 f=open('yesterday','w',encoding='utf-8')#往文件里写的时候,内容先存在缓存,再写进硬盘;默认等到缓存满之后再一起写进硬盘
     81 f.write('hello
    ')
     82 f.flush()#强制刷新,不等缓存满直接缓存内容写进硬盘
     83 f.close()
     84 
     85 #进度条
     86 import sys,time
     87 for i in range(50):
     88     sys.stdout.write('#')
     89     sys.stdout.flush()
     90     time.sleep(1)
     91 
     92 
     93 f=open('yesterday','a',encoding='utf-8')
     94 f.truncate(20)#从头开始截断文件,括号内设置大小
     95 f.close()
     96 
     97 #读写
     98 f=open('yesterday','r+',encoding='utf-8')#以读和追加的模式打开
     99 print(f.readline())
    100 print(f.readline())
    101 print(f.readline())
    102 f.write('-------------')#写在文件最后
    103 print(f.readline())
    104 print(f.readline())
    105 print(f.readline())
    106 print(f.tell())
    107 f.close()
    108 
    109 #写读
    110 f=open('yesterday','w+',encoding='utf-8')#先创建文件之后再写读
    111 print(f.readline())
    112 print(f.readline())
    113 print(f.readline())
    114 f.write('-------------
    ')
    115 f.write('-------------
    ')
    116 f.write('-------------
    ')
    117 print(f.tell())
    118 f.seek(10)
    119 print(f.readline())
    120 print(f.readline())
    121 print(f.readline())
    122 print(f.tell())
    123 f.close()
    124 
    125 #以二进制格式读文件
    126 f=open('yesterday','rb')#用处:网络传输只能用二进制格式、视频文件等二进制文件只能用二进制格式打开
    127 print(f.readline())
    128 print(f.readline())
    129 print(f.readline())
    130 f.close()
    131 
    132 #以二进制格式写文件
    133 f=open('yesterday','wb')
    134 f.write('hello
    '.encode())#必须用二进制格式写入
    135 f.close()
  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9763102.html
Copyright © 2011-2022 走看看