python读取文件的方法和区别(浅谈PYTHON 关于文件的操作)
python读取文件的方法和区别
浅谈PYTHON 关于文件的操作1.打开文件:
f=open(r'E:\PythonProjects\test7\a.txt',mode='rt',encoding='utf-8')
以上三个单引号内分别表示:要打开的文件的路径,mode为文件打开方式具体介绍在下文,encoding为文件的字符编码,一般默认为utf-8
2.读写文件:
data=f.read() # 读文件
f.write() # 写文件
3.关闭文件:
f.close()
4.为了简便,一般采用上下文的方法进行文件操作,可不用关闭文件
|
with open ( 'a.txt' ,mode = 'rt' ,encoding = 'utf-8' ) as f: data = f.read() print (data) |
|
with open ( 'a.txt' ,mode = 'wt' ,encoding = 'utf-8' ) as f: f.write( 'hello world' ) |
5.控制文件读写的操作:
r:(默认模式):只读:以该模式打开文件时,若文件不存在则报错,若文件存在,则文件指针在文件开头,即从文件开头开始读文件
w:只写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则清空文件内容,文件指针移到开头
a:追加写:以该模式打开文件时,若文件不存在则创建一个文件,如文件存在,则将文件指针移到文件末尾,在文件末尾写入新的内容
6.控制文件读写内容的模式:(t 和 b都不能单独使用,必须与r,w,a结合使用)
t:(默认):无论读写都是以字符为单位,只能识别文本文件,必须要制定encoding
b:无论读写都是以字节为单位,可以识别所有文件,一定不能指定encoding
7.文件的拷贝
|
with open ( 'a.txt' ,mode = 'rb' ) as af,\ open ( 'b.txt' ,mode = 'wb' ) as bf: data = af.read f.write(data) |
执行程序后,打开文件,即可发现文件已成功拷贝,这里使用 b 而不是用 t 模式,是因为文件有多种格式
8.文件的修改:
文件的修改是在硬盘上实现文件的覆盖,相当于一个新的文件以旧的文件名来命名的; 文件的修改有俩种方式,分别适用于不同的情景
方式一(适用于容量小的文件):这种方式的原理是:创建一个新的文件,将旧文件的内容拷贝到新的文件中;这样内存里就存在俩个文件,故不适用于容量大的文件,具体代码见下方 View
|
with open ( 'a.txt' ,mode = 'rt' ,encoding = 'utf-8' ) as f: data = f.read() data_new = data.replace( 'yang' , 'yv' ) with open ( 'b.txt' ,mode = 'wt' ,encoding = 'utf-8' )as p: p.write(data_new) |
方式二(适用于容量大的文件):此方式的原理为:读取旧文件的一行内容,修改后写到临时文件中,循环往复直到写完,然后将源文件删除,将临时文件命名为源文件名.这种方式在内存中只存在2行文件,节省内存,可用于大文件
|
import os with open ( 'b.txt' ,mode = 'rt' ,encoding = 'utf-8' ) as f,\ open ( '.b.txt.swap' ,mode = 'wt' ,encoding = 'utf-8' ) as p: for line in f: p.write(line.replace( 'yv' , 'yang' )) # 调用replace方法,将源文件中的'yv',换成'yang' os.remove( 'b.txt' ) os.rename( '.b.txt.swap' , 'b.txt' ) |
9. 文件的阶段:truncate(n)
将文件中n个字节后内容全删了,当 n 不存在时,即删除文件全部内容
10.文件内指针的移动
f.seek(): 指针的移动是以字节为单位的
seek 有三种模式:
0:(默认模式) 指针在文件开头,只有在 0 模式可以在 t 模式下用,也可以在 b 模式下用,而 1 ,2 模式只能在 b 模式下使用
1:指针在当前位置
2:指针在文件末尾
以下为具体事例:
|
# 0 with open ( 'a.txt' ,mode = 'rt' ,encoding = 'utf-8' )as f: f.seek( 3 , 0 ) print (f.tell()) # 指针当前位置 print (f.read()) # 从指针后读出所有内容 # 1 参照指针当前位置 with open ( 'a.txt' ,mode = 'rb' )as f: f.read( 2 ) f.seek( 4 , 1 ) print (f.tell()) print (f.read().decode( 'utf-8' )) # 2 参照文件末尾 with open ( 'a.txt' ,mode = 'rb' )as f: f.seek( - 5 , 2 ) print (f.tell()) print (f.read().decode( 'utf-8' )) |
当 seek处于 2 模式时,可以将文件中新加入的内容打印出来,具体代码如下:
|
# 另一个文件进行写操作,写的代码如下: with open ( 'a.txt' ,mode = 'at' ,encoding = 'utf-8' )as f: f.write( 'hello world\n' ) # 每在文件中写入新的内容,都打印出来,以下代码执行打印操作: import time with open ( 'a.txt' ,mode = 'rb' )as f: f.seek( 0 , 2 ) while True : line = f.readline() # readline 可以读取没有内容的部分 # print(line.decode('utf-8')) if len (line) = = 0 : time.sleep( 0.1 ) else : print (line.decode( 'utf-8' )) |
以上所述是小编给大家介绍的PYTHON 关于文件的操作详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://www.cnblogs.com/yang220/p/10085345.html
- asp.net 文件操作
- sql server操作方法(SQL Server 文件操作方法)
- docker安装nginx如何配置(docker部署nginx并且挂载文件夹和文件操作)
- python 文件操作(Python File文件 方法整理)
- python自带的ide的使用(基于python的ini配置文件操作工具类)
- python pdf文件操作(Python常见读写文件操作实例总结文本、json、csv、pdf等)
- python爬虫并保存excel实例(Python实现爬取亚马逊数据并打印出Excel文件操作示例)
- php逐行读写文件(PHP实现读取文件夹及批量重命名文件操作示例)
- python拖动选择文件操作(python通过paramiko复制远程文件及文件目录到本地)
- php数组写法(php文件操作之文件写入字符串、数组的方法分析)
- ftp文件操作三种类型(详解ftp创建文件权限问题)
- python中读取文件怎么操作(Python实现的读取文件内容并写入其他文件操作示例)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
- 弄清楚了销 售 买 卖这四个字,母婴生意做起来就没那么难了(弄清楚了销售买)
- 数读 买首饰金是 投资黄金 吗 买金容易卖金难(数读买首饰金是)
- 销 售 买 卖 你真的了解这四个字了吗(销售买)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
热门推荐
- python用于机器人(python实现nao机器人身体躯干和腿部动作操作)
- dedecms标签调用大全(织梦cms图集{dede:field name='imgurls'}显示栏目名称)
- ubuntu安装hadoop单机版(VMware + Ubuntu18.04 搭建Hadoop集群环境的图文教程)
- select into from 和 insert into select 的用法和区别
- 面向对象的装封、继承、多态的概念理解
- 微信小程序图片加特效(微信小程序实现可实时改变转速的css3旋转动画实例代码)
- navicat15激活页面不显示(Navicat for MySQL 15注册激活详细教程)
- serv-u怎么用web登录(serv-u服务器的管理方法与功能分析)
- 计算引擎flink(浅谈实时计算框架Flink集群搭建与运行机制)
- php调试用什么工具好(调试php程序的简单步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9