Python 读写文本(open)
读写参数
Character | Meaning |
---|---|
‘r’ | open for reading (default) |
‘w’ | open for writing, truncating the file first |
‘a’ | open for writing, appending to the end of the file if it exists |
‘b’ | binary mode |
‘t’ | text mode (default) |
‘+’ | open a disk file for updating (reading and writing) |
‘U’ | universal newline mode (for backwards compatibility; should not be used in new code) |
读写参数组合
模式 | 描述 |
---|---|
rt | 读取文本,默认模式 |
rb | 读取二进制数据 |
wt | 写入文本 |
wb | 写入二进制 |
r+ | 不清空原文件,读写 |
w+ | 清空原文件,并读写 |
a+ | 在文件末尾读写 |
示例
首先在左面新建一个”abc.txt”的文件,文件的内容入如下:
I
love
CSDN
只读
只读模式(默认模式)
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","r")
>>>>print(f.read())
I
love
CSDN
>>>>f.close()
只写
写入模式
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","w")
>>>>f.write("test")
>>>>f.close()
输出的结果是:
test
在使用”w”模式时,python会把原来的文件给覆盖掉,形成新的文件,这里注意如果写入的文件不存在,python会自动新建一个文件。
追加
追加模式
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","a")
>>>>f.write("test")
>>>>f.close()
输出的结果是:
I
love
CSDNtest
二进制读写
另外我们还可以设定读取和写入的方式:
以二进制方式读取:
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","rb")
>>>>print(f.read())
>>>>f.close()
b'I\r\nlove\r\nCSDN'
with实例
import re
with open("C:/Users/Administrator/Desktop/abc.txt","r",encoding="utf-8") as f:text=f.read()
text=re.sub(r"In \[.*\]:\n","[In]:",text)
text=re.sub(r"Out\[.*\]:","[Out]:",text)
with open("C:/Users/Administrator/Desktop/abc.txt","w",encoding="utf-8") as f:f.write(text)
编码问题
将一个gbk文件转码为utf8文件.注意r
,w
模式只能开启一种,所以encoding
就确保了是编码还是解码,在r
的模式下encoding
做的是decode,而在w
模式下encoding
做的是encode
.如果使用r+
或者w+
则encoding
既做decode
又做encode
,而且decode
和encode
编码相同.
gbk = open("./gbk.txt", "r", encoding = "gbk")gbk_text = gbk.read()gbk.close()utf = open("./gbk.txt", "w", encoding = 'utf8')utf.write(gbk_text)utf.close()
open()
open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数 | 说明 |
---|---|
file | 文件路径 |
mode | rwabt |
buffering | |
encoding | 只有在tmode下有用,指定编码和解码,默认使用系统的编码格式(win下是gbk,linux是utf8) |
errors | |
newline | 指定换行符 |
closefd | |
opener |
file object
方法 | 描述 |
---|---|
close() | 关闭流 |
closed | 如果已经关闭则返回true |
readable() | 是否可读 |
read() | (str)读取整个文本为一个字符串 |
readline(size=-1) | (str)返回一行,size可以指定多行 |
readlines(hint=-1) | (list),读取所有行 |
seek(offset[, whence]) | 更改指针偏移量 |
tell() | 返回当前流的位置 |
writable() | 是否可写 |
writelines(lines) | 写入一行 |
write(s) | 写入字符串 |
Python 读写文本(open)相关推荐
- 《Python Cookbook 3rd》笔记(5.1):读写文本数据
读写文本数据 问题 你需要读写各种不同编码的文本数据,比如 ASCII,UTF-8 或 UTF-16 编码等. 解法 使用带有 rt 模式的 open() 函数读取文本文件(t表示text文本模式,默 ...
- Python 文件操作中的读写模式:open(path, ‘-模式-‘,encoding=‘UTF-8‘)+python读写文件txt +文本数据预处理
python读写txt文件 文件的打开的两种方式f = open("data.txt","r") #设置文件对象 f.close() #关闭文件#为了方便,避免 ...
- python读写二进制文件(读写字节数据)
python读写二进制文件(读写字节数据) 你想读写二进制文件,比如图片,声音文件等就是常见的二进制文件. 使用模式为 rb 或 wb 的 open() 函数来读取或写入二进制数据.比如: # Rea ...
- python读写csv时中文乱码问题解决办法
参考1 参考2 参考3 CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和 ...
- python输出csv文件中文乱码-python读写csv时中文乱码问题解决办法
CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开.CSV ...
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- python文件读取输出-Python 读写文件中数据
1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...
- python如何读写文件-Python读写文件
python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作. 我们先看一下,纯文本是如何进行读写操作的. """ created by nzh Date: 20 ...
- python写文件读文件-Python 读写文件和file对象的方法(推荐)
1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...
最新文章
- 拆解交易系统--如何做好稳定性
- aop springboot 传入参数_java相关:springboot配置aop切面日志打印过程解析
- Nagios 监控系列学习 —— 简介和安装
- FAILED: ValidationFailureSemanticException partition spec {dt=2021-04-01} doesn‘t contain all (2) pa
- php正则表达式 匹配日期,正则表达式-正则表达式以匹配有效日期
- 如何用cocos2d-x来开发简单的Uphone游戏:(二) 移动的精灵
- Ajax_Apache访问资源文件的权限配置、资源存放路径配置、配置虚拟主机、动态网站静态网站区别...
- 爬壁除锈机器人_浙大研制出除锈爬壁机器人
- PHP排雷之编码问题
- 写给考完SDOI2016R2D1的自己
- Python编程一定要注意的那些“坑”(九):0与False
- android edittext最多输入,android 中如何限制 EditText 最大输入字符数
- vue excel导入mysql详细教程_Vue前端上传EXCEL文件,后端(springBoot+MyBatis+MySQL)解析EXCEL并批量插入/更新数据库...
- 05.SpringBoot的yml配置详解
- oracle掉电后ora 00600,ORA-00600: 内部错误代码, 参数: [kcratr1_lastbwr](转)
- UVA10751 Chessboard【数学水题】
- 大数据分析如何保证数据质量
- scrapy 官方中文文档地址
- 启发式算法,元启发式算法,超启发式算法
- 【数据库查询表结构】
热门文章
- 学习Python+numpy数组运算和矩阵运算看这254页PPT就够了
- wsdl 架构验证警告:来自命名空间_金九银十,正在面试吗?面试官必问:JVM架构解读,查漏补缺...
- 【图像特征提取1】方向梯度直方图HOG---从理论到实践------附带积分图像的解析
- 双机热备_涨知识 | 双机热备与备份一体机的联系及区别
- mysql不同字符集_如何在mysql中设置不同的字符集
- linux中sed或awk,Linux中sed和awk命令比较实例
- matlab程序员得浪漫,程序员的浪漫:教你如何用MATLAB向女生表白
- python 实现对地图的点击_python实现Pyecharts实现动态地图(Map、Geo)
- java面试下_Java面试宝典(下)
- mysql硬盘备份_原创-在mysql中把里面的数据库备份到自己的硬盘上