Python--文件交互

编程入门 行业动态 更新时间:2024-10-24 23:30:49

Python--<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件交互"/>

Python--文件交互

Python–文件交互

打开文件

打开文件,可使用自动导入的io模块中的**open()**函数

io.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)以文件名作为必需参数,返回一个文件对象- file  文件名- mode  指定操作模式- encoding 指定解码方式- newline 指定换行符
  • mode参数的常见取值

    mode = 'r'		读取模式(默认)	可读取文件
    mode = 'w'		写入模式		从文件开头写入文件,文件不存在时自动创建
    mode = 'x'		独占写入模式		创建文件并写入,如果文件已存在,引发FileExistsError异常
    mode = 'a'		附加模式		从文件末尾开始写入文件mode = 'b'		二进制模式		将文件视为二进制数据
    mode = 't'		文本模式(默认)	将文件视为Unicode文本,默认使用UTF-8进行编码和解码
    mode = '+'		读写模式		'r+' 'w+',既可读也可写,后者截断文件,前者不会
    

    其中6-8于1-4搭配使用,如‘rb’表示读取二进制模式

  • ‘rt’模式下的自动转换换行符:

    默认情况下,以‘\n’作为换行符。读取时将自动替换其他换行符(‘\r’或‘\r\n’),写入时把‘\n’替换为其他换行符

  • 通用换行模式

    在这种模式下,python能够识别所有合法的换行符,如\n \r \r\n

    如果要使用这种模式,同时禁止自动转换,可将newline参数设置为空字符串‘’,这样在读取和写入的过程中换行符不会发生转换。

    此外,如果只指定\r为换行符,可将newline参数设置为‘\r’,这样读取时不会将换行符\r进行转换,但写入时会将\n转换为\r

操作文件的基本方法

读取
  • f.read() 从 f f f文件开头读取文件,可指定字符个数

    f.read()  从文件开头读取整个文件,保存到一个字符串中
    f.read(4) 从文件开头读取四个字符
    
  • f.readline() 从文件开头读取文件的一行

    f.readline()	从文件开头开始,读取一整行
    f.realine(5)	读取该行的前5个字符
    
  • f.readlines() 读取文件的所有行

    f.readlines()	读取文件的所有行,并以列表的形式返回它,列表的每一个元素为一行
    
写入
  • f.write()

    f.write(string)	将字符串写到文件中既有内容的后面
    
  • f.writelines()

    f.writelines(iteration)	接受一个字符串列表(可以是任何序列或可迭代对象),将这些字符串都写入到文件中,写入时不会自动添加换行符,需要手动设置
    
关闭文件
  • f.close()

    f.close() 关闭文件f,保证写入缓冲区的数据都写入到文件中
    

    在文件写入过程中,python可能会缓冲你的数据,将数据暂时存储到某个位置,以提高效率,如果文件未正常关闭,数据可能根本不会写入到文件中

  • 使用with语句,语句块执行完毕后,会自动关闭文件(允许你使用上下文管理器)

    with open('file_name') as f:pass
    

迭代文件内容

每次一个字符
with open(filenam) as f:while True:char = f.read(1)if not char:breakprocess(char)
每次一行
with open(filenam) as f:while True:line = f.readline()if not line:breakprocess(line)
读取所有内容
with open(filenam) as f:for char in f.read():process(char)with open(filenam) as f:for line in f.readlines():process(line)
使用fileinput实现延迟行迭代

大型文件的读取中,如果一次读取整个文件,会占用太多的内存,此时可以循环分段迭代,也可适应延迟行迭代的方式

延迟行迭代:只读取实际需要的文本部分

import fileinputfor line in fileinput.input(filename):process(line)
文件迭代器

文件实际上是可以迭代的

with open(filename) as f:for line in f:process(line)

返回若干个io.TextIOWrapper对象

io.TextIOWrapper是一个编码和解码的文本处理层,待了解*

更多推荐

Python--文件交互

本文发布于:2023-07-28 15:43:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1239192.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!