Python中文件的操作
文件的操作介绍
文件打开的方法
主要有两种:
no with
格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
常用:variable = open('路径\文件',mode,encoding=None)
variable.close()
#不使用with方法时,在文件操作结束时要关闭文件
with
格式:with open('路径\文件',mode,encoding=None) as variable:
#该方法比较常用,在文件操作结束时不需要手动关闭文件,该方法默认自动关闭文件。
文件的打开模式
r
只读模式(默认),如果文件不存在将报错。
w
只写模式:可写,不可读,如果文件不存在,将创建,存在将进行覆盖。
a
追加模式:可写,不可读,文件不存在就创建,文件存在就在文件末尾追加。
+
表示同时读写操作:r+/w+/a+
r+:可读可写,文件不存在将报错。
w+:可读可写,文件不存在将创建,存在将覆盖。
a+:可读可写,文件不存在将创建,存在将在文件末尾追加。
U
将 \r \n \r\n自动转换为 \n(在读取模式使用:rU/r+U)
b
二进制格式存储文件内容:rb/wb/ab/r+b/w+b/a+b
rb:二进制格式读文件,可读,不可写,文件不存在将报错。
wb:二进制格式写文件,不可读,可写,文件不存在,将创建,文件存在将覆盖。
ab:二进制格式追加文件内容,不可读,可写,文件存在直接追加,不存在将创建。
r+b:二进制格式读写文件,可读,不可写,文件不存在将报错。
w+b:二进制格式写读文件,可读,可写,文件不存在,将创建,文件存将覆盖。
a+b:二进制格式追加文件内容,可读,可写,文件不存在将创建,文件存在将追加在末尾。
注:读写内容时需要使用字符串的编码和解码操作str.encode('utf-8')和str.decode('utf-8'),默认格式也是当前系统所使用的编码格式。
注:查看系统默认编码方法:
格式:sys.getdefaultencoding()
#需要导入sys模块,调用该方法来获取当前系统默认的编码格式。
文件的常用操作
close(关闭文件)
格式:file.close()
#该方法主要用于no with的打开文件情况下。
detach(分离)
格式:file.detach()
#该方法主要用于返回缓存区打开文件的路径和模式,日常很少使用。
fileno(文件描述符)
格式:file.fileno()
#返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
flush(刷新)
格式:file.flush()
#刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
isatty(终端)
格式:file.isatty()
#如果文件连接到一个终端设备返回 True,否则返回 False。
read(按字节读取文件)
格式:file.read(size=-1)
#文件读取指定的字节数,如果未给定或为负则读取所有。
readable(是否可读)
格式:file.readable()
#判断文件是否可读,可读则返回True,否则返回False。
readline(按行读文件)
格式:file.readline(size=-1)
#读取整行,包括 "\n" 字符,如果未给定或为负则读取一行。如果指定字节大小小于该行长度时,则只读取到第一行第N个字节。如果大于该行长度,则继续读下一行。
seek(指定指针位置)
格式:file.seek(whence=0)
#指定指针位置,文件的开始指针位置为0。
seekable(指针是否可变)
格式:file.seekable()
#判断指针是否可改变,如果可以改变则返回Ture,否则返回False。
tell(显示指针位置)
格式:file.tell()
#返回当前指针位置。
truncate(截取文件)
格式:file.truncate(pos=None)
#指定截取N个字节,从0开始,0-N保留,N之后的全部删除,该方法只能用于可写模式。
write(写入)
格式:file.write(text)
#把内容填写到文件中。
writable(是否可写)
格式:file.writabel()
#判断文件是否可写,如果可写,则返回True,否则返回值False。
readlines(读每行)
格式:file.readlines(hint=-1)
#一行一行读取文件内容,并把读取到的数据以列表的形式返回,默认读全部文件,指定字节时,如果指定的长度小于该行长度,则只读取该行内容,如果指定长度大于该行长度,则继续读下一行。
writelines(序列写入)
格式:file.writelines(lines)
#把序列写入到文件中,接收参数可以是一个序列,也可以是一个字符串,write只能接收字符串。
常用的文件属性
buffer(模式和路径)
格式:file.buffer
#功能与detach()一样,返回文件打开的模式和文件路径
closed(是否关闭)
格式:file.closed
#判断文件是否已经关闭,如果已经关闭,则返回True,否则返回False。
encoding(编码)
格式:file.encoding
#判断文件的编码格式,未指定时返回cp936。
errors(报错)
格式:file.errors
#取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。
line_buffering
格式:file.line_buffering
#返回布尔值
name
格式:file.name
#返回文件的名字
newlines
格式:file.newlines
#可以取的值有None, \n, \r, ”, ‘\r\n',用于区分换行符,但是这个参数只对文本模式有效
Python中文件的操作的更多相关文章
- python 中文件输入输出及os模块对文件系统的操作
整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...
- python中OS模块操作文件和目录
在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
- (Python基础教程之八)Python中的list操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- python中文件的复制
python中文件的复制 python的os模块有很多文件目录相关的函数,但没有提供直接复制文件的函数,当然可以通过边都边写的方式复制文件.想要直接复制文件可以通过shutil模块 shutil模块是 ...
- OC中文件的操作
OC中文件操作,在之前的文章中,已经接触到了文件的创建了,但是那不是很具体和详细,这篇文章我们就来仔细看一下OC中是如何操作文件的: 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文 ...
随机推荐
- 学习less
什么是less?LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. less哪 ...
- copy代码(含static对象)留下的致命错误
本来以为这个bug快改不好了,然而发现了问题所在 copy代码没有完全改掉对象名称,导致对象重复创建了,由于是static所以debug过程中 注释了addProperty(gridRowDetail ...
- Linux--慕课学习
刚开始接触Linux,很有幸的在慕课网上看到了Peter老师的Linux入门课程,老师讲课真的式行云流水,深入浅出,循循善诱,层层递进. 老师分享的都是自己多年来总结的经验.看完之后也学到了很多东西. ...
- Debian8搭建LEMP环境
LEMP环境指的是Linux+Nginx+MariaDB+PHP 这里我选择的版本是最新的MariaDB和PHP7 安装Nginx 相对于Apache,Nginx是一个轻量级的高性能web服务器并在近 ...
- zookeeper初探
安装三台linux虚拟机,安装好java环境,并配置好网络以及host文件,分别改好hostname为node0.node1.node2 上传下载好的zookeeper文件到node0的/usr/lo ...
- 使用hue查看hdfs系统报无法访问:/user/hadoop。 Note: you are a Hue admin but not a HDFS superuser, "hdfs" or part of HDFS supergroup, "supergroup".
出现这个问题,是因为默认的超级用户是hdfs ,我的是hadoop用户登录的, 也就是说首次登录hadoop这个用户是我的超级用户 此时只需要将hue.ini配置改为 然后重启即可.
- angular中使用echart遇到的获取容器高度异常的问题记录
问题 在使用echart去创建图表时,发现图表只占了容器的一个角落,如图,并没有充满容器. 第一反应是容器元素的样式有问题,于是我把容器的宽高都改为px指定的(之前是百分比设定的,查询资料发现说ech ...
- SQL基础-----DDL
1 (My)SQL入门 这里用了(My)SQL这样的标题,目的是介绍标准SQL的同时,也将MySQL在标准SQL上的扩展一同介绍给读者. 2:SQL分类 SQL语句主要可以划分为以下3个类别 .DDL ...
- 学习React系列(四)——受控组件与非受控组件
受控组件:通过组件的状态与属性的改变来控制组件 不可控组件:直接通过底层的dom来控制组件(具体来说就是通过绑定再底层dom上的方法来实现的,比如说ref,onChange) 受控组件 functio ...
- [LeetCode] Minimum Index Sum of Two Lists 两个表单的最小坐标和
Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite ...