python3的文件读写模式
任何一种语言,文件的读写都是非常常见的。python的文件读写非常简单,仅仅一个函数open(file也可以,但是我不常用)。
先看看官网的解释:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Open file and return a stream. Raise IOError upon failure.
常用打开模式:
r 只能读
r+ 可读可写,不会创建不存在的文件,从顶部开始写,会覆盖之前此位置的内容
w+ 可读可写,如果文件存在,则覆盖整个文件,不存在则创建
w 只能写,覆盖整个文件,不存在则创建
a 只能写,从文件底部添加内容 不存在则创建
a+ 可读可写 从文件顶部读取内容 从文件底部添加内容 不存在则创建
但是实验发现,这里的r+ 可读可写 不会创建不存在的文件 从顶部开始写 会覆盖之前此位置的内容不完整。
test.txt的原始文件如下:
早上好
您好
how are you?
如果我们在open文件后,没有进行任何读写,则从末尾加入
with open('test.txt', mode='r+', encoding='utf-8') as f:
f.writelines("北京")
这时文件变成
北京好
您好
how are you?
如果我们在写之前进行了读操作,则会在末尾加入文件
with open('test.txt', mode='r+', encoding='utf-8') as f:
f.read(1)
f.writelines("北京")
这时在文件的末尾加入了北京两个字,与我们读多少没有关系。作用上类似a+模式
早上好
您好
how are you?北京
注意:以r+模式处理文件,容易弄错内容,千万注意
如果以w+方式打开文件,写入文件后,文件被覆盖或重建,样例
with open('test.txt', mode='w+', encoding='utf-8') as f:
f.write("tianjin")
f.flush()
print(f.readlines())
得到空[]
with open('test.txt', mode='w+', encoding='utf-8') as f:
f.writelines("天津")
f.writelines('山东')
f.flush()
f.seek(0)
print(f.readlines())
需要seek才能读取到刚刚写入的内容。
另外注意 写操作不会自动加入换行符
读的一行末尾会有换行操作,可以用''.strip()去掉换行符
with open('test.txt', mode='r', encoding='utf-8') as f:
for line in f:
print(line.strip()) 去掉换行
如果某个文件正在open,就只这时,文件被修改,正在读文件的句柄能读出修改的内容
import time
with open('test.txt', mode='r', encoding='utf-8') as f:
time.sleep(5)
for line in f:
print(line.strip())
在文件末尾增加文件时,我们的f能读取到最后新增的内容。如果修改已经读取行的内容,若不seek,则读取不到。
这特点能用户增量读取分析日志文件
python3的文件读写模式的更多相关文章
- Python3:文件读写
Python3:文件读写 open f = open('filename','r') # 读模式 f = open('filename','w') # 写模式 f = open('filename', ...
- python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb
要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...
- python3:文件读写+with open as语句
转载请表明出处:https://www.cnblogs.com/shapeL/p/9141238.html 前提:文中例子介绍test.json内容: hello 我们 326342 1.文件读取 ( ...
- 【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历
原来没有仔细注意C++读写文件的二进制模式和文本模式,这次吃了大亏.(平台:windows VS2012) BUG出现: 写了一个程序A,生成一个文本文件F保存在本地,然后用程序B读取此文件计算MD ...
- python3学习--文件读写
这一篇我们来看文件读写操作. 打开和创建文件主要是open()函数: f = open('filename','r') # 读模式 f = open('filename','w') # 写模式 f = ...
- python3:文件读写+with open as语句(转)
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- Python3之文件读写操作详解
文件操作的步骤: 打开文件 -> 操作文件 -> 关闭文件 切记:最后要关闭文件(否则可能会有意想不到的结果) 打开文件 文件句柄 = open('文件路径', '模式') 指定文件编码 ...
- python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)
如下表 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 ...
- python 文件读写模式区别,以及如何边写入边保存flush()
如表: 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 否, ...
随机推荐
- bootstrap导航菜单,手机和PC端
源代码 <!DOCTYPE html> <html> <head lang="en"> <meta name="viewport ...
- css优先级汇总
原文:css优先级汇总 我所理解的css优先级:当两个或者多个样式作用于同一个元素时,就会出现css优先级的问题. 多重样式优先级:当内联样式.内部样式和外部样式作用于同一个元素时,属于多重样式的范畴 ...
- Cocos2d-x 3.1.1开发环境
Windows7上搭建Cocos2d-x 3.1.1开发环境 前言 现在,越来越多的公司采用Cocos2d-x 3.0来开发游戏了,但是现在这样的文章并不多,所以打算写一系列来帮助初学者快速掌握C ...
- Jumony快速抓取网页
Jumony快速抓取网页 --- Jumony使用笔记--icode 作者:郝喜路 个人主页:http://www.cnicode.com 博客地址:http://haoxilu.c ...
- dcmtk常用命令
dump2dcm 把普通文件转换成含有dcm头的文件,参数为源文件,目标文件 例:dump2dcm q1.txt query.dcm 表示把q1.txt文件转换为query.dcm dcmdump 阅 ...
- AutoPostBack通过现象看本质
在做人事档案管理系统时遇到一个功能需要实现前台数据(实时)与后台进行交互,解决这个问题首先想到的是应用控件的AutoPostBack属性.本以为这个问题就这样解决了(不用javascript.jque ...
- 【IOS开发】创建XML文件
- (void)viewDidLoad { [super viewDidLoad]; NSString *path = [[NSBundle mainBundle] pathForResource:@ ...
- [转]编译 JavaScriptCore For iOS
from: http://phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios github: https://github.c ...
- 用django搭建一个简易blog系统(翻译)(三)
06. Connecting the Django admin to the blog app Django 本身就带有一个应用叫作Admin,而且它是一个很好的工具 在这一部分,我们将要激活admi ...
- MVC常见的控制器,接口,数据层之间的操作
user_books_info 类 namespace CiWong.LearningLevel.Mapping { public class user_books_info { /// <su ...