• 文件操作总结(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()
  • 相关阅读:
    P1247 取火柴游戏 (奇异局势)
    1290A
    P1236 算24点
    LCP 4. 覆盖
    leetcode 1066. 校园自行车分配 II
    hdu 2255 奔小康赚大钱
    NC200546 回文串
    上市是什么意思 为什么上市就有钱了
    主板、中小板、创业板、新三板的区别是什么?
    熔断机制
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9763102.html
Copyright © 2020-2023  润新知