当前位置: 首页 > 科技观察

一篇文章带你了解Python的文件读写

时间:2023-03-16 18:12:51 科技观察

1.什么是文件?一个文件就是存放一些存储,下次执行程序的时候可以直接使用,不用重新拷贝一份,省时省力。2.如何打开文件?Python有一个内置的open()方法,可以读写文件。使用open()方法操作文件就像把大象塞进冰箱一样。分为三步,一是打开文件,二是操作文件,三是关闭文件。开放语法open()方法的返回值是一个文件对象,可以赋值给一个变量(文件句柄)。其基本语法格式为:f=open(filename,mode)注:在Python中,所有具有读写方法的对象都可以归为文件类型。所有的文件类型对象都可以使用open方法打开,close方法结束。filename:一个字符串值,包含要访问的文件的名称,通常是文件路径。mode:打开文件有多种模式,默认是只读模式r。例子:#打开一个文件f=open("1.txt","w")f.write("Python是一门非常好的语言。\nPython!!\n")#关闭打开的文件f.close()运行结果:1.txt文件中写的Python是一门非常好的语言。Python。3.访问方式通过一张表,了解Python常用的读写方式。如果要读取非UTF-8编码的文件,需要将encoding参数传递给open()函数。比如读取GBK编码的文件:>>>f=open('gbk.txt','r',encoding='gbk')>>>f.read()'GBK'#Encoding遇到一些编码错误A标准文件可能会抛出UnicodeDecodeError异常,这意味着文件中可能混入了一些非法编码的字符。在这种情况下,可以提供errors参数来指示如何处理编码错误。f=open('gbk.txt','r',encoding='gbk',errors='ignore')4.文件对象操作使用open方法打开一个文件,返回一个文件对象。这个对象有很多内置的操作方法。下面打开一个f文件对象(1.txt)。对文件对象进行相关操作。1.f.read(size)读取一定大小的数据,并以字符串或字节对象的形式返回。size是一个可选的数字参数,用于指定要读取的数据量。当size被省略或为负数时,文件的全部内容将被读取并返回。f=open("1.txt","r")str=f.read()print(str)f.close()如果文件较大,请不要使用read()方法读入一次存储内存,但它是逐位读取(312)的。2、f.readline()从文件中读取一行n行内容。换行符是'\n'。如果返回空字符串,则表示已读取最后一行。这种方法通常在读取一行和处理一行时使用。f=open("1.txt","r")str=f.readline()打印(str)f.close()3。f.readlines()读取文件中的所有行,一行一行,读入一个列表中,将列表的元素按顺序一个接一个地取出,返回这个列表。readlines方法会一次性把所有文件读入内存,所以有一定的缺点。但它的优点是每一行都存储在一个列表中,可以随意访问。f=open("1.txt","r")a=f.readlines()print(a)f.close()4.遍历文件在实践中,我们会将文件对象用作迭代器。#打开一个文件f=open("1.txt","r")forlineinf:print(line,end='')#关闭打开的文件f.close()这个方法很简单,不需要putthefileatonceRead,也没有提供很好的控制,像readline方法只能前进,不能后退。几种不同的读取和遍历文件方法比较:如果文件很小,read()一次读取最方便;如果无法确定文件大小,则重复调用read(size)更安全;如果是配置文件,调用readlines()最方便。通常,使用for循环更好更快。5.f.write()使用write()完成向文件写入数据。#打开一个文件f=open("/tmp/foo.txt","w")f.write("Python是一门很好的语言。\n我喜欢Python!!\n")#关闭打开的文件f.close()6.f.tell()返回文件读写指针的当前位置,即从文件开头算起的字节数。一定要注意,是字节数,不是字符数。7.f.seek()如果要改变位置指针的位置,可以使用f.seek(offset,from_what)方法。seek()通常与tell()方法结合使用。from_what的值,如果为0表示从文件头开始计算,如果为1表示从文件读写指针的当前位置开始计算,2表示从文件末尾开始计算文件,默认为0,例如:offset:表示偏移量。seek(x,0):从起始位置开始移动x个字符,即文件第一行的第一个字符。seek(x,1):表示从当前位置向后移动x个字符。seek(-x,2):表示从文件末尾向前移动x个字符。示例:f=open("1.txt","rb+")f.write(b"1232312adsfalafds")print(f.tell())print(f.seek(5))print(f.read(1))print(f.seek(-3,2))print(f.read(1))结果:8.f.close()关闭文件对象。处理完文件后,调用f.close()关闭文件并释放系统资源。文件关闭后,如果再次尝试调用文件对象,将抛出异常。忘记调用close()的后果是数据可能仅部分写入磁盘而其余部分丢失,或者更糟。五、with关键字with关键字用于Python的上下文管理器机制。为防止open等文件打开方法在运行过程中出现异常或错误,或者最后忘记执行close方法,导致文件异常关闭,导致文件泄露损坏。Python提供了withcontextmanager机制来保证文件会被正常关闭。无需编写关闭语句。注意缩进。withopen('test.txt','w')asf:f.write('Hello,world!')with支持同时打开多个文件(文件随机创建):withopen('1')asobj1,open('2','w')asobj2:s=obj1.read()obj2.write(s)6.总结本文以Python为基础,用Python语言介绍Python文件的知识点操作。从文件的基本概念出发,通过每个小项目的演示,对常用的读写模式、文件对象的操作方法以及实际应用中需要注意的问题进行了讲解细节。希望能帮助大家更好的学习Python。