【python】学习笔记2-文件处理

1、文件操作

 1 # 文件读写
 2 # http://www.nnzhp.cn/archives/160
 3 # # 打开,读取,写,关闭
 4 f=open('cm','r+',encoding='utf-8')#打开文件,默认gbk,所以需要转码
 5 # f.close() #一旦打开必须关闭
 6 
 7 # 文件打开三种方式,读 写 追加 r w a
 8 # 读 r 不指定时默认为读
 9 # 读写 r+ 只要有r,文件不存在都会报错
10 # 写 w
11 # 写读 w+ 只要有w,文件内容就会清空
12 # 追加 a
13 # 追加读写 a+ 打开文件直接读取的话,读取不到,文件指针在最后,需要用seek
14 
15 # seek(0)移动文件指针的位置,读取所有行的内容,注意文件指针的位置,是在哪里,才从哪里读取
16 f.seek(0) #seek追加的时候,只对读好使,对写不好使
17 print(f.read())#读取所有内容
18 print(f.readline())# 只读取一行的内容
19 print(f.readlines())#读取所有内容,把文件里面每一行的内容放到一个list里面
20 
21 #
22 ## write不支持数组的写,而writelines支持
23 names =['cm1','cm2','cm3']
24 names1 =('cm1','cm2','cm3')
25 names2 ="'cm1','cm2','cm3'"
26 # f.write(names) 会报错,不支持数组的写
27 f.writelines(names)
28 f.writelines(names1)
29 f.writelines(names2)
30 
31 # # 清空文件内容
32 # f.seek(0)
33 # f.truncate()
34 
35 # f.tell()告诉指针所在的位置
36 f.writelines(names)
37 print(f.tell())
38 f.close()

 2、flush rb wb ab

 

 1 #
 2 #  f.flush() #立即刷新函数,有时候write写不进去,需要立即把缓冲区的内容写到磁盘里,flush
 3 # f = open('cm.txt', 'w', encoding='utf-8')
 4 # f.write('sss')
 5 
 6 # # 用with自动管理文件,一旦不用文件的话,可以自动给关闭,不用写close关闭
 7 # with open('cm.txt','w') as cmf:
 8 #     cmf.write("hahaha")
 9 
10 # # with 可以同时打开多个文件,用,隔开   weishenm?
11 # with open('cm.txt','w',encoding='utf-8') as f1,open('cm1.txt','w', encoding='utf-8') as f2:
12 #     f1.write("啊啊啊啊啊啊啊啊啊")
13 #     f2.write("啊啊啊啊啊啊啊啊啊")
14 
15 # rb 以二进制模式打开
16 # wb 以二进制模式写
17 # ab 以二进制模式追加
18 
19 #更换图片
20 import requests
21 url='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1515587533566&di=b738787410ea4a2ffd910a3d75c1a0d3&imgtype=0&src=http%3A%2F%2Fimg.article.pchome.net%2F00%2F42%2F98%2F62%2Fpic_lib%2Fs960x639%2Fhbtb%2520%252811%2529s960x639.JPG'          #图片的地址
22 img=requests.get(url).content
23 f=open('postman.png','wb')
24 f.write(img)

 3、修改文本内容

 1 # 修改文本内容,方法1
 2 with open('geci.txt','a+',encoding='utf-8') as f:
 3     f.seek(0)
 4     all = f.read()
 5     newall = all.replace('','')
 6     f.seek(0)
 7     f.truncate()
 8     f.write(newall)
 9     f.flush()
10 
11 # 修改文档内容方法2:像excel或者其他修改文件的操作,基本是这么处理
12 import os #os模块包含普遍的操作系统功能
13 with open('geci.txt','a+',encoding='utf-8') as f , open('geci.bak','w+',encoding='utf-8') as f2:
14     f.seek(0)
15     for line in f:
16         newline = line.replace('','')
17         f2.write(newline)
18 os.remove('geci.txt')
19 os.rename('geci.bak','geci.txt')

 

posted @ 2018-01-06 00:11  萌_CALY  阅读(186)  评论(0编辑  收藏  举报