使用Python来处理文件
一,文件处理的步骤:
文件处理的步骤通常有以下三步:
1. 打开文件,得到文件句柄并赋值给一个变量
2. 通过句柄对文件进行操作
3.关闭文件
二,python中详细的API
#1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r#2. 通过句柄对文件进行操作 data=f.read()#3. 关闭文件 f.close()
f=open('a.txt','r')的过程分析#1、由应用程序向操作系统发起系统调用open(...)#2、操作系统打开该文件,并返回一个文件句柄给应用程序#3、应用程序将文件句柄赋值给变量f
三,强调
1,文件处理完后必须要关闭文件
打开一个文件包含两部分资源:操作系统级打开的文件+应用程序的变量。在操作完毕一个文件时,必须把与该文件的这两部分资源一个不落地回收,回收方法为:1、f.close() #回收操作系统级打开的文件2、del f #回收应用程序级的变量其中del f一定要发生在f.close()之后,否则就会导致操作系统打开的文件还没有关闭,白白占用资源,
而python自动的垃圾回收机制决定了我们无需考虑del f,这就要求我们,在操作完毕文件后,一定要记住f.close()可以使用如下方式,就不用我们自己去关闭文件了,操作系统自动完成:
with open('a.txt','r') as read_f,open('b.txt','w') as write_f:data=read_f.read()write_f.write(data)2,要注意字符编码,
f=open(...)是由操作系统打开文件,那么如果我们没有为open指定编码,那么打开文件的默认编码很明显是操作系统说了算了,操作系统会用自己的默认编码去打开文件,在windows下是gbk,在linux下是utf-8。若要保证不乱码,文件以什么方式存的,就要以什么方式打开。,
四,其他操作文件的模式
#1. 打开文件的模式有(默认为文本模式): r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式) rb wb ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码#3. 了解部分 "+" 表示可以同时读写某个文件 r+, 读写【可读,可写】 w+,写读【可读,可写】 a+, 写读【可读,可写】x, 只写模式【不可读;不存在则创建,存在则报错】 x+ ,写读【可读,可写】 xb
五,操作文件的方法
#掌握 f.read() #读取所有内容,光标移动到文件末尾 f.readline() #读取一行内容,光标移动到第二行首部 f.readlines() #读取每一行内容,存放于列表中 f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符 f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符 f.writelines(['333\n','444\n']) #文件模式 f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式#了解 f.readable() #文件是否可读 f.writable() #文件是否可读 f.closed #文件是否关闭 f.encoding #如果文件打开模式为b,则没有该属性 f.flush() #立刻将文件内容从内存刷到硬盘 f.name#掌握 f.read() #读取所有内容,光标移动到文件末尾 f.readline() #读取一行内容,光标移动到第二行首部 f.readlines() #读取每一行内容,存放于列表中 f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符 f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符 f.writelines(['333\n','444\n']) #文件模式 f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式#了解 f.readable() #文件是否可读 f.writable() #文件是否可读 f.closed #文件是否关闭 f.encoding #如果文件打开模式为b,则没有该属性 f.flush() #立刻将文件内容从内存刷到硬盘 f.name
转载于:https://www.cnblogs.com/ithome0222/p/8688650.html
使用Python来处理文件相关推荐
- python读取xml文件报错ValueError: multi-byte encodings are not supported
1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...
- Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器
Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...
- python如何调用文件_如何调用另一个python文件中的代码
原博文 2017-07-10 15:56 − 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另 ...
- python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据
在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...
- python 流写入文件_python文件流操作
博主在学习python时对文件进行操作时经常踩一下坑.所以专门梳理了一下.有问题麻烦指出哈. python对于文件的操作我们一般是用open().我们根据python的源码可以看出.我们必须要传的参是 ...
- python读取一个文件夹/子文件夹下的所有文件名字
python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...
- python日志输出到屏幕,python日志写入文件
python日志输出到屏幕,python日志写入文件 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选 ...
- python中读取文件过程中seek()函数的使用
python中读取文件过程中seek()函数的使用 目录 概述: 语法: 参数: 返回值: 实例: 概述: seek() 方法用于移动文件读取指针到指定位置. 语法: seek() 方法语法如下: 文 ...
- Python递归获取文件夹下面所有文件名字:
Python递归获取文件夹下面所有文件名字: def getAllFiles(targetDir):files = []listFiles = os.listdir(targetDir)for i i ...
- python知识点:文件读写以及其他基础知识点
常用模块 import os os.system()入参是一个字符串,一旦调用,这个字符串就会当作系统命令来执行. os.system('pwd') /home/ubuntu 交互式输入 name=r ...
最新文章
- TensorFlow解析常量、变量和占位符
- 小程序在wxml使用indexOf
- j2me学习三_LCDui类学习(2)
- 五项管理行动日志_迈向学习型组织,企业必须具备五项修炼
- Springboot-读取核心配置文件及自定义配置文件
- drf5 版本和认证组件
- java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...
- 阿里拍卖官方客服全面升级 推出一对一教你“一站式服务”
- uni 登录token方法_封装uni-app的须要token的要求
- [转载] python中的numpy模块和pandas模块的区别_numpy 模块和 pandas 模块
- php1怎么获取网卡id号,C#获得MAC地址(网卡序列号)代码
- 贪吃蛇c语言源代码彩色版,贪吃蛇C语言源代码
- mescroll API 汇总
- 北上广深不相信电单车 共享单车终究走向“死“胡同?
- 2020-08-05
- 焦距、光圈和景深的关系
- 狼性精神——《世界上最伟大的推销员》
- 乐高打印机robotc
- BES(恒玄) 平台 复杂按键 实现
- php安全新闻早八点-高级持续渗透-第二季关于后门补充一