Python文件的操作示例的详细讲解


Posted in Python onApril 08, 2021

1. 文件的读写原理:

文件的读写称为I/O操作。

操作原理:

Python文件的操作示例的详细讲解

.py文件是用解释器去运行,调用OS操作系统的资源,去操作磁盘上的文件。

操作流程: 在去操作一个文件的文件的时候,首先打开或者创建一个文件,进行读或者写。
读: 从文件拿到内存当中来
写:把内存的文件放入文件中

最后进行关闭资源。

内置函数: open() 可以创建或者打开一个文件

语法规则:
file=open(filename [mode,encoding]

打开模式默认为只读
默认文本中的字符编码格式为gbk

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23

file=open('a.txt',encoding='utf-8')
print(file.readlines())
file.close()

readlines这样会把读取的数据写入一个列表中。

2. 常用的文件打开模式

文件操作:
os.mknod(“test.txt”) 创建空文件
fp = open(“test.txt”,w) 直接打开一个文件,如果文件不存在则创建文件

关于open 模式:

参数 含义
r 以只读的模式打开文件,文件的指针会放到文件的开头
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
b 以二进制方式打开文件,不能单独使用,需要和其他模式共用,比如rb
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )

案例1:

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23

file=open('b.txt','w')
file.write("python")
file.close()

这样会新建一个b.txt,如果原来就已经有了,就替换。

二进制文件: 把数据用字节的方式进行存储,无法用记事本打开。比如mp3.图片

3. 文件对象的常用方法

方法 含义
fp.read([size]) #size为读取的长度,以byte为单位
fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError
fp.flush() #把缓冲区的内容写入硬盘
fp.fileno() #返回一个长整型的”文件标签“
fp.isatty() #文件是否是一个终端设备文件(unix系统中的)
fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点
fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

4. 目录的相关操作

目录操作:

  • os.mkdir(“file”) 创建目录
  • 复制文件:

shutil.copyfile(“oldfile”,“newfile”) oldfile和newfile都只能是文件
shutil.copy(“oldfile”,“newfile”) oldfile只能是文件夹,newfile可以是文件,也可以是目标目录

  • 复制文件夹:

shutil.copytree(“olddir”,“newdir”) olddir和newdir都只能是目录,且newdir必须不存在

  • 重命名文件(目录)

os.rename(“oldname”,“newname”) 文件或目录都是使用这条命令

  • 移动文件(目录)

shutil.move(“oldpos”,“newpos”)

  • 删除文件

os.remove(“file”)

  • 删除目录

os.rmdir(“dir”)只能删除空目录
shutil.rmtree(“dir”) 空目录、有内容的目录都可以删

  • 转换目录

os.chdir(“path”) 换路径

案例:

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23

import os
#os.system('notepad.exe')  #打开记事本
#os.system('calc.exe')  #打开计算器
##直接调用可执行文件

#os.startfile('D:\\Software\\WeChat\\WeChat.exe')  #打开微信
print(os.getcwd())  #查看当前目录
print(os.listdir('../vippython'))  #查看vippython中包含的目录
os.mkdir('d_file') #创建文件夹

 

到此这篇关于Python文件的操作示例的详细讲解的文章就介绍到这了,更多相关Python文件操作详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
用Python编写简单的微博爬虫
Mar 04 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
浅述python2与python3的简单区别
Sep 19 Python
python实现移位加密和解密
Mar 22 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
简单了解python PEP的一些知识
Jul 13 Python
python实现自动清理重复文件
Aug 24 Python
python+openCV对视频进行截取的实现
Nov 27 Python
Django展示可视化图表的多种方式
python tkinter模块的简单使用
python如何在word中存储本地图片
python 下载文件的几种方式分享
Apr 07 #Python
完美处理python与anaconda环境变量的冲突问题
python 如何用map()函数创建多线程任务
python requests模块的使用示例
Apr 07 #Python
You might like
php 过滤器实现代码
2010/08/09 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
python中assert用法实例分析
2015/04/30 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python在文本开头插入一行的实例
2018/05/02 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
用 python 进行微信好友信息分析
2020/11/28 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
追悼会悼词大全
2015/06/23 职场文书
电视新闻稿
2015/07/17 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
企业团队精神心得体会
2016/01/19 职场文书