python学习笔记(三)— 文件操作
对文件的操作分三步:
1、打开文件获取文件的句柄,句柄就理解为这个文件
2、通过文件句柄操作文件
3、关闭文件。
现有以下文件a.txt:
登鹳雀楼
唐代:王之涣
白日依山尽,黄河入海流。
一、文件基本操作
f = open('a.txt','a+',encoding='utf-8')#打开一个文件
f.seek(0)#seek移动指针到文件开头的时候,只对读好使,对写不好使
print(f.read())#读取文件里面的全部内容
f.write('\n'+'欲穷千里目,更上一层楼。 ')#写入文件
# f.truncate()#清空文件内容
print(f.tell())#查看当前文件指针的位置
print(f.readline())#只读取一行的内容
print(f.readlines())#读取文件里面所有的内容,把文件里面每一行的内容放到一个list里面
f.close()#关闭文件
注:文件打开有3种方式
读 r (如果打开的文件的时候没有指定模式,那么默认是读)
读写模式 r+(只要沾上r,文件不存在的时候,打开都会报错)
写 w
写读模式 w+(只要沾上w,他就会把文件内容清空)
追加 a
追加读写a+
f = open('a.txt','a+',encoding='utf-8')
# names = {'a:1'}
# s='haha,123456'
# f.write(names)
# f.writelines(names) #写入可迭代的数据,效率不高
二、文件的高效处理
用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了
f = open('file.txt')
for line in f:
print(line)
#这样的话,line就是每行文件的内容,读完一行的话,就会释放一行的内存
三、文件的修改
''修改文件 一 '''
with open('a.txt','a+',encoding='utf-8') as f:
f.seek(0)
all =f.read()
new_all =all.replace('二','一')
f.seek(0)
f.truncate() #删除原文件内容
f.write(new_all)
f.flush()
'''修改文件 二'''
import os
with open('a.txt','a+',encoding='utf-8') as f,open('c.txt','w',encoding='utf-8') as f2:
f.seek(0)
for line in f:
new_line = line.replace('一','二')
f2.write(new_line)
os.remove('a.txt')#删除原文件
os.rename('c.txt','a.txt')#更改修改文件名称
四、其他
with open('a.txt','w') as gy,open('b.txt','w') as gy2: #打开多个文件且自动关闭
gy.write('hhh')
gy2.write('hahah')
f = open('1.png','rb')# 加b是以二进制方式打开,图片、音频等
print(f.read())
import requests
url ='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1515304507894&di=070363110e7a4fdb43819f439ab4d168
&imgtype=0&src=http%3A%2F%2Fg.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2F5fdf8db1cb134954a7ff35815c4e9258d0094a76.jpg'
img = requests.get(url).content
f = open('c.jpg','wb')
f.write(img)
import time
f = open('a.txt','w')
f.write('adada')
f.flush()#立即把缓冲区里面的内容写到文件中
python学习笔记(三)— 文件操作的更多相关文章
- python学习笔记(三):文件操作和集合
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...
- python学习笔记三 文件操作(基础篇)
文件操作 打开文件 open(name[,mode[,buffering]]) open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉] w ...
- python学习笔记之文件操作(三)
这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...
- Python学习笔记 - day5 - 文件操作
Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...
- python学习笔记:文件操作和集合
一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...
- python学习笔记4(文件操作)
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”) 直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- 我的Python学习笔记之文件操作
一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...
- python学习笔记(四)-文件操作
文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w ...
- python学习笔记(五)-文件操作2
一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...
随机推荐
- Logstash日志字段拆分grok
参考和测试网站:http://grokdebug.herokuapp.com 例如:test-39.dev.abc-inc.com Mon Apr 24 13:53:58 CST 2017 2017- ...
- 删除CNNIC根证书
操作方法: 1.点击IE工具菜单-->选项-->内容-->证书,在受信任的根证书颁发机构中找到CNNIC Root,将证书导出到桌面备用. 双击CNNIC ROOT查看这个证书的属性 ...
- 这不是bug,而是语言特性
分析编程语言缺陷的一种方法是把所有的缺陷归于3类:不该做的做了,该做的没做,该做但做得不合适. 在使用switch case时,如果使用缺省的 fall through,请一定在旁边注释,因为97%的 ...
- jquery ajax api
执行一个异步的HTTP(Ajax)的请求. version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串. setti ...
- CGPathCreateMutable
ios 图形与动画学习笔记 构造路径(CGPathCreateMutable) 一系列点放在一起,构成了一个形状.一系列的形状放在一起,构成了一个路径. /* 路径属于我们正在绘制他们的上下文.路 ...
- xmapp+netbeans调试
1.netbeans的设置 2.修改php.ini 如下: [XDebug]zend_extension = "D:\dev\xampp\php\ext\php_xdebug.dll&quo ...
- SpringMVC之学习(1)
先来一个springmvc的基本配置,照样输出hello world 1.先导入springmvc所需要的开发包 最起码需要这么多的基本包,然后开始上配置 2.先在web.xml里进行引入,和Stru ...
- MyBatis增删改查模板
1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...
- 二分图匹配 + 最小点覆盖 - Vertex Cover
Vertex Cover Problem's Link Mean: 给你一个无向图,让你给图中的结点染色,使得:每条边的两个顶点至少有一个顶点被染色.求最少的染色顶点数. analyse: 裸的最小点 ...
- 回文树(回文自动机) - BZOJ 3676 回文串
BZOJ 3676 回文串 Problem's Link: http://www.lydsy.com/JudgeOnline/problem.php?id=3676 Mean: 略 analyse: ...