文件的读写

文件的最基本读写方式

 1 f=open('小重山','r',encoding='utf8')
 2 date=f.read(5)                         #
 3 print(date)
 4 f.close()
 5 
 6 import time
 7 f=open('小重山2','a',encoding='utf8')
 8 
 9 date=f.write('
 hello cindy.
')
10 date=f.write('im so young')
11 
12 time.sleep(2)
13 f.close()

#注意 如果用这种方式打开的文件 一定要使用close()方法关闭文本 虽然python一般情况下会自动关闭文档

Read的一些方法

 1 f1=open('小重山','r',encoding='utf8')
 2 for i in f1:
 3     print(i.strip())                    #迭代器 最优的打印方式 打印一次(很可能是一行)释放一次 然后再取下一次
 4 
 5 f2=open('小重山','r',encoding='utf8')
 6 print(f2.tell())
 7 print(f2.read(5))
 8 print(f2.tell())                        #tell 告诉当前光标所在的位置 当然 如果内容是中文的话 那么一个中文就占3个字符 与编码有关
 9 
10 f2.seek(0)                              #自定义光标的位置
11 print(f2.read(4))

Wirte的一些方法

import  sys,time
for i in range(50):
    sys.stdout.write("#")               #sys.stdout 这是一个终端操作 在终端上显示
    sys.stdout.flush()                  #flush实时写入硬盘
    time.sleep(0.01)

f3=open('小重山3','a',encoding='utf8')
f3.write("im good very good 
千里江陵一日还
两岸猿声啼不住
轻舟已过万重山
")
f3.truncate(15)                         #数据截断 比如ftp重传 可以截断你需要截断的位置
f3.close()

r+ w+ a+

 1 #r+,w+,a+
 2 f3=open('小重山3','r+',encoding='utf8')    #r+模式 可读可写 从第一个字符开始读 写是在最后写
 3 print(f3.readline())
 4 f3.write('cindy')
 5 f3.close()
 6 
 7 
 8 f4=open('小重山4','w+',encoding='utf8')      #w+先刷新(清空文件) 后再写
 9 print(f4.readline())
10 f4.write("cindy")
11 print(f4.tell())
12 f4.seek(0)
13 print(f4.readline())
14 f4.close()
15 
16 
17 f5=open('小重山5','a+',encoding='utf8')        #a+从最后一个字符开始读 可读可写
18 print(f5.tell())
19 print(f5.readline())
20 f5.write("hello")
21 print(f5.tell())
22 print(f5.readline())
23 f5.close()
24 
25 
26 终极问题
27 f=open('小重山','r+',encoding='utf8')
28 num=0
29 for i in f:
30     num +=1
31     if num ==6:
32         f.write('cindy')                        #write操作说明  写从来都是从最后开始写的 跟读所在的指针位置无关 这是一种存储机制
33 
34 
35 f=open('小重山','r',encoding='utf8')
36 temp=open('temp','w',encoding='utf8')
37 num=0
38 for i in f:
39     num+=1
40     if num ==6:
41         i=''.join([i.strip(),'cindy
'])
42     temp.write(i)
43 
44 f.close()
45 temp.close()

with同时管理多个对象

1 with open('log','r') as a,open('log2','w') as f:
2     for i in a:
3         f.write(i)
原文地址:https://www.cnblogs.com/cindy7/p/10927809.html