对文件的操作分三步:

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学习笔记(三)— 文件操作的更多相关文章

  1. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  2. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  3. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  4. Python学习笔记 - day5 - 文件操作

    Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...

  5. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  6. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  7. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  8. 我的Python学习笔记之文件操作

    一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...

  9. python学习笔记(四)-文件操作

    文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w ...

  10. python学习笔记(五)-文件操作2

    一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...

随机推荐

  1. Python 切片那些事

  2. poj2082单调栈

    本来实在做后缀数组的题目的,不巧,碰到了pku3415这题,需要用到单调栈来维护,但是之前又没有学习过单调栈这方面的知识,于是水了几题....... 题意:给你一些连续的小矩形,高宽不定,求最大的矩形 ...

  3. SNP密度分布模式

    1. window=100k,step=2k 统计每个window的snp密度,然后用mixtools的normalmixEM(两个组分的混合模型)统计snp的分布模式. R command: lib ...

  4. C语言 · 大数乘法

    #include<stdio.h> #include<string.h> ]; void mult(char a[],char b[]) { ,alen,blen,sum=,r ...

  5. 在windows中将Tomcat作为服务启动

    http://www.cnblogs.com/chuyuhuashi/archive/2012/04/28/2475315.html ————————————————————————————————— ...

  6. 数据库 proc编程七

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  7. C++ 匿名对象的生命周期

    //匿名对象的生命周期 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Poin ...

  8. 如何修改织梦官方flash幻灯片的方法

    源代码: <!-- size: 280px * 192px --> <script language='javascript'> linkarr = new Array(); ...

  9. Cocos2d-x-Lua (2.x)脚本开发之 Lua语言基础

    从今天開始,往后将陆续更新Lua教程,主要是搭载Cocos2dx ,有不论什么疑惑或者不正确的地方.尽情指正.交流.探讨. 那么首先肯定是Lua语言基础的知识点.以下直接附上代码,凝视已经非常清楚.无 ...

  10. ThinkPHP跳转与重定向的区别

    跳转: 浏览器认为: 当前URL请求成功, 重新请求新的URL. 浏览器会 记录当前的URL 和 新的URL 在请求历史记录中. 回退, 是可以回退到, 当前的URL上的. (无论 success, ...