python学习——文件操作
打开文件
f = open(文件名, 文件打开模式,文件编码)
- ‘w’:只写模式,它是只能写,而不能读的。如果用’w’模式打开一个不存在的文件,则会创建新的文件开始写入;如果用’w’模式打开一个已存在的文件,则会清空文件里内容数据,重新写入新的内容。
- ‘r’:只读模式,它是只能读,而不能写的。如果用’r’模式,文件必须得存在,若文件不存在,会报FileNotFoundError错误。
- ‘a’:追加模式,它是只能写,不能读的。如果用’a’模式写,文件不存在的话,会新建文件再写入数据;如果用’a’模式写,文件存在的话,会在文件内容的末尾写入内容,不会清空原来的内容
- ‘w+’:可读可写模式。文件不存在,则新建;存在的话,则清空文件重新写入。’w+’重要一点是会把原来的内容清空(请慎重使用)
- ‘r+’:可读可写模式。重要是文件必须存在,不存在的话,打开会报错,同时写的话,则文件开头写入内容。
- ‘a+’:可读可写模式。文件不存在则新建;存在的话,则文件末尾追加内容。
- ‘rb’:读取二进制文件
- ‘rw’:写入二进制文件
文件的操作方法
f=open('python.txt','w+',encoding='utf-8')#打开文件
#python2 打开文件除了open()方法,还有一种file()方法:f = file('a.txt','r'),python3没有这个file()方法。 f.writable()#判断文件是否可写 f.readable()#判断文件是否可读 f.write('天气真好!'+'\n')#写文件,写字符串到文件里 f.writelines(['搏击'+'\n','打篮球'+'\n'])#写文件,写列表到文件里 f.read()#读文件的所有内容,返回的是字符串 f.readlines()#读文件所有的内容,返回的是列表 f.readline()#读一行内容,返回的是字符串 f.tell()#返回文件的当前指针位置 f.truncate()#清空文件内容 f.seek(0)#移动文件指针的执行,传0是代表把文件指针指向文件开头 f.flush()#让write()后,f.flush()把内存里的数据立马写入到磁盘里,使得写完就生效;
#而实际的write()写有缓存时间,无法立即写入 f.close()#关闭文件
读文件
文件操作方法read(),readlines()的读文件,会把所有数据加载到内存,当读入较大文件时,则内存会会不够,所以这两种方法既不安全而且效率不高。所以可以读一行,释放一行。
f = open('python.txt','r',encoding='utf-8')
for line in f: #line是文件每行的内容
print(line)
f.close()
修改文件
修改文件可以采用两种方法:1.读取文件所有内容,把原文件清空,重新写入新的内容 2.修改后的内容写入一个新的文件,再将新文件替换原文件。
#第一种方法,适用于文件小的情况。在不删除原文件的情况下,修改文件的内容。
f = open('python.txt','r+',encoding='utf-8')
res = f.read()
new_res = res.replace('周五周六','周末')
f.seek(0)
f.truncate()
f.write(new_res)
f.close()
#第二种方法,无论文件大小都适合。新建文件,一行行的写入替换内容,再删除旧文件,最后新文件更名成原文件名。给人一种在原文件修改内容的假象。
import os
f = open('python.txt','r+',encoding='utf-8')
f_n = open('ddd.txt','a+',encoding='utf-8')
for line in f:
new_line =line.replace('美女','帅哥')
f_n.write(new_line)
f.close()
f_n.close()
os.remove('python.txt')
os.rename('ddd.txt','python.txt')
多文件操作
使用with方法,在文件不使用的时候,自动关闭该文件,而不需要自己写close()。当同时打开多个文件时,使之不会产生错误。
with open("file.txt","r",encoding='utf-8') as fr,\
open("file_new.txt","a+",encoding='utf-8') as fa:#虽然python编码规范要求每行代码不超过80个字符,但是为了方便阅读,可以加上"\",让代码换行。
python学习——文件操作的更多相关文章
- python学习 文件操作
一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...
- Python学习---文件操作的学习1208
1.1. 对文件操作基本操作: 操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 注意:pyton中操作的文件是utf8保存的,打开文件时open函数是通过操作系统 ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
- Python常见文件操作的函数示例
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
随机推荐
- 多线程与高并发(五)final关键字
final可以修饰变量,方法和类,也就是final使用范围基本涵盖了java每个地方,我们先依次学习final的基础用法,然后再研究final关键字在多线程中的语义. 一.变量 变量,可以分为成员变量 ...
- 在工作中常用的Linux命令
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 之前写过一篇 < 在公司做的项目和自己在学校做 ...
- 一文了解有趣的位运算(&、|、^、~、>>、<<)
1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中.即0.1两种状态,计算机对二进制数据进行的运算(+.-.*./)都是叫位运算,即将符号位共同参与运算的运算. 口说无凭,举一个简单的例 ...
- PHP使用array_unique对二维数组去重处理
去重,点这里,东西是好东西,就是有点懒.莫见怪
- java练习---10
package cn.zrjh; public class L { public int id; public String name; public int age; public String c ...
- Liunx环境下配置matplotlib库使用中文绘图
最近在使用matplotlib库的过程中需要用到中文绘图,在网上找了好多种方法,最终用一种方法解决了,在此记录. 首先Linux是有自己的中文字体的,叫做"Droid Sans Fallba ...
- php之布尔类型判断
字符串只要不为空且不为0都为true 执行结果为 执行结果为false 因为===不仅比较值,还比较类型,所以输出为false.如果使用===号比较,最好先将变量强转为bool类型,不然可能得不到想要 ...
- vue+ elementUI 打包发布到服务器后,element-icons.woff文件404
vue项目打包部署到服务器,静态资源文件404 js文件404问题 原因:打包的项目静态资源的路径需要设置为绝对路径.如果是相对路径会出错 解决办法:修改config/index.js文 ...
- 【MySQL】java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB3' for column
问题原因: 输入内容包含特殊字符,MySQL 中的列不支持. 解决方法 多数是修改 MySQL 的数据库和表结构,CHARSET 改为 utf8mb4,但本人测试还是不能传入 emoji. 后来在代码 ...
- C# 二维码的生成
nuget 搜索qrcodenet,然后选择下载gma.qrcodenet public partial class Form1 : Form { public Form1() { Initializ ...