一,文件处理的步骤:

文件处理的步骤通常有以下三步:

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来处理文件相关推荐

  1. python读取xml文件报错ValueError: multi-byte encodings are not supported

    1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...

  2. Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器

    Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...

  3. python如何调用文件_如何调用另一个python文件中的代码

    原博文 2017-07-10 15:56 − 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另 ...

  4. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  5. python 流写入文件_python文件流操作

    博主在学习python时对文件进行操作时经常踩一下坑.所以专门梳理了一下.有问题麻烦指出哈. python对于文件的操作我们一般是用open().我们根据python的源码可以看出.我们必须要传的参是 ...

  6. python读取一个文件夹/子文件夹下的所有文件名字

    python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...

  7. python日志输出到屏幕,python日志写入文件

    python日志输出到屏幕,python日志写入文件 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选 ...

  8. python中读取文件过程中seek()函数的使用

    python中读取文件过程中seek()函数的使用 目录 概述: 语法: 参数: 返回值: 实例: 概述: seek() 方法用于移动文件读取指针到指定位置. 语法: seek() 方法语法如下: 文 ...

  9. Python递归获取文件夹下面所有文件名字:

    Python递归获取文件夹下面所有文件名字: def getAllFiles(targetDir):files = []listFiles = os.listdir(targetDir)for i i ...

  10. python知识点:文件读写以及其他基础知识点

    常用模块 import os os.system()入参是一个字符串,一旦调用,这个字符串就会当作系统命令来执行. os.system('pwd') /home/ubuntu 交互式输入 name=r ...

最新文章

  1. TensorFlow解析常量、变量和占位符
  2. 小程序在wxml使用indexOf
  3. j2me学习三_LCDui类学习(2)
  4. 五项管理行动日志_迈向学习型组织,企业必须具备五项修炼
  5. Springboot-读取核心配置文件及自定义配置文件
  6. drf5 版本和认证组件
  7. java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 阿里拍卖官方客服全面升级 推出一对一教你“一站式服务”
  9. uni 登录token方法_封装uni-app的须要token的要求
  10. [转载] python中的numpy模块和pandas模块的区别_numpy 模块和 pandas 模块
  11. php1怎么获取网卡id号,C#获得MAC地址(网卡序列号)代码
  12. 贪吃蛇c语言源代码彩色版,贪吃蛇C语言源代码
  13. mescroll API 汇总
  14. 北上广深不相信电单车 共享单车终究走向“死“胡同?
  15. 2020-08-05
  16. 焦距、光圈和景深的关系
  17. 狼性精神——《世界上最伟大的推销员》
  18. 乐高打印机robotc
  19. BES(恒玄) 平台 复杂按键 实现
  20. php安全新闻早八点-高级持续渗透-第二季关于后门补充一

热门文章

  1. c c++ 宏定义中#, ##, #@的含义
  2. Day4 单用户模式、救援模式、克隆虚拟机、linux机器相互登录
  3. IBM与西班牙桑坦德银行合作,推广企业级 iOS 银行应用
  4. 够快云库轻松解决文件复制速度过慢
  5. vsftp启用root用户
  6. Eclipse下PHP开发 插件安装
  7. win7下安装VC6LineNumberAddin方法[VC6行号插件]
  8. Windows Hook机制
  9. 大型网站架构, 缓存的几点
  10. 空类型(void *)的简单理解