python中对文件操作的一般步骤,Python操作文件
Python 1中对基本文件的操作。前言2。创建和打开文件1。首先打开一个不存在的文件。2.以二进制形式打开文件3。指定打开文件时的编码方法3。关闭文件4。打开文件时使用with语句。写入文件6的内容。正在读取文件1。读取指定的字符2。读一行3。读取所有行1。前言在Python中,有一个内置文件。使用file对象时,首先需要通过内置的open()方法创建一个file对象,然后通过这个对象提供的方法做一些基本的文件操作。例如,可以使用file对象的write()方法写入文件,使用close()方法关闭文件。下面描述如何应用Python的文件对象进行基本的文件操作。
二。在Python中创建和打开文件,如果要操作一个文件,需要先创建或打开指定的文件,并创建一个file对象。这可以通过内置的open()函数来实现。open()函数的基本语法格式如下:
File=open(文件名[,模式[,缓冲]])参数描述:
File: created file对象filename:要创建或打开一个文件,需要用单引号或双引号将它括起来。如果要打开的文件与当前文件在同一个目录下,直接写文件名即可,否则需要指定完整路径。例如,要在当前路径中打开名为status.txt的文件,可以使用“status.txt”。Mode:可选参数,用于指定文件的打开方式。其参数值如下所示。默认打开模式是只读(即R)值。
解释
r
以只读方式打开文件。指向文件的指针将放在文件的开头。
元素铷的符号
以二进制格式打开文件,并采用只读模式。指向文件的指针将放在文件的开头。一般用于非文本文件,如照片、音乐等。
r
文件打开后,您可以读取文件的内容,或者写入新内容以覆盖原始内容(从文件的开头开始)。
元素铷的符号
以二进制格式打开文件,采用写模式。指向文件的指针将放在文件的开头。一般用于非文本文件,如图片、声音等。
w
以只写模式打开文件
世界银行
以二进制格式打开文件,并使用只写模式。一般用于非文本文件,如图片、声音等。
w
打开文件后,首先清除原始内容,使其成为空文件。您对此空文件拥有读写权限。
世界银行
以二进制格式打开文件,并使用读写模式。一般用于非文本文件,如图片、声音等。
a
以追加模式打开文件。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后);否则,将创建一个新文件进行写入。
腹肌
以二进制格式打开文件,并使用追加模式。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后);否则,将创建一个新文件进行写入。
a
以读写模式打开文件。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后);否则,将创建一个新文件进行写入。
腹肌
以二进制格式打开文件,并使用追加模式。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后),否则会创建一个新文件进行写入。
Buffering:可选参数,用于指定读写文件的缓冲方式。值为0表示不缓存表达式;值1表示表达式缓存。默认为缓存模式。1.打开文件时创建一个不存在的文件。默认情况下,使用open()函数打开一个不存在的文件会抛出一个异常,如图所示。
要解决上图所示的错误,有两种主要方法:
在当前目录(即与执行文件相同的目录)中创建一个名为status.txt的文件。调用open()函数时,指定模式的参数值为W,W,A,A,这样,当要打开的文件不存在时,可以新建一个文件。2.以二进制形式打开文件。使用open()函数不仅可以打开文本文件,还可以打开非文本文件,如二进制格式的图片和音频文件。比如创建一个名为picture.jpg的图片文件(如图),应用open()函数以二进制方式打开文件。
以二进制模式打开文件,并输出创建的对象对的代码,如下所示:
file=open(picture.jpg , rb )
Print(file)执行上面的代码,会显示如图所示的结果:
从上图可以看出,创建了一个BufferedReader对象。对象生成后,可以由其他第三方模块处理。比如上面的BufferedReader对象就是通过打开一个图片文件来实现的。然后可以传入第三期图像处理库PIL的图像模块的open()方法,方便图像处理(比如调整大小等。).
3.打开文件时指定编码方法。使用open()函数打开文件时,默认采用GBK编码。当打开的文件不是GBK编码时,会抛出异常,如图:
解决这个问题有两种方法,一种是直接修改文件的编码,另一种是直接指定打开文件时使用的编码方式。推荐后一种方法。下面重点介绍打开文件时如何指定编码方式。
调用open()函数时,可以通过添加“encoding= UTF-8 ”参数将编码指定为UTF-8。如果要指定另一个代码,可以用要指定的代码替换单引号。
例如,要打开以UTF-8编码保存的notice.txt文件,可以使用以下代码:
File=open (notice.txt , r ,encoding= UTF-8) III。关闭文件。打开文件后,需要及时关闭,以免对文件造成不必要的损害。使用file对象close()方法可以关闭文件。close()方法的语法格式如下:
File.close() #关闭文件说明:close()方法在关闭文件之前刷新缓冲区中的信息,以便将尚未写入文件的内容写入文件。关闭文件后,就不能再写了。
四。打开文件时,用语句打开文件后,要及时关闭。如果忘记关闭它,可能会导致意想不到的问题。另外,如果打开文件时抛出异常,会导致文件不能及时关闭。为了更好的避免这种事情,可以使用Python提供with语句。因此,在处理文件时,无论是否抛出异常,都可以在执行with语句后关闭打开的文件。with语句的基本语法格式如下:
以表达式为目标:
带体参数描述:
表达式:用来指定一个表达式,这里可以是函数open()来打开一个文件。Target:用于指定一个变量,并将表达式的结果保存到该变量中。With-body:用于指定With语句的主体,可以是一些与with语句的执行相关联的操作语句。如果不想执行该语句,可以直接使用pass语句代替。例如,打开一个文件的语句,修改后的代码如下:
打印( \n ,= * 10, Python经典应用程序,= * 10)
以( mass.txt , w )作为文件:#创建或打开一个保存Python经典应用程序信息的文件。
及格
打印( \ n将很快显示.\ n )。写文件内容在前面的内容里。虽然已经创建并打开了一个文件,但是文件里面什么都没有,大小是0kb。Python中的file对象提供了write()方法,可以像写文件一样写内容。write()方法的语法格式如下:
file.write(string)参数描述:
File: Open file object string:要写入的字符串注意:调用write()方法将内容写入文件时,前提是打开文件时,指定的打开方式是W(可写)或A(追加),否则会抛出异常如图:
不及物动词读取文件在Python中打开文件后,不仅可以向其中写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况。
1.读取指定的字符文件对象提供了read()方法来读取指定数量的字符,其语法格式如下:
file.read([size])参数描述:
File: open file object size:可选参数,用于指定要读取的字符数。如果省略,将一次读取所有内容。注意:调用read()方法读取文件内容时,前提是打开文件时,指定的模式是R(只读)或R(读写);否则,将会抛出如图所示的异常。
例如,要读取massage.txt中的前9个字符串,可以使用以下代码:
以( mass.txt , r ,encoding= utf-8 )为文件:#打开文件。
String=file.read(9) #读取前9个字符串
Print(string)例如,massage.txt文件的内容是:
Python的实力超乎你的想象!然后执行上面的代码,将显示以下内容:
使用read([size])方法读取文件时,会从文件的开头读取部分内容。您可以首先使用file对象的seek()方法将文件的指针移动到新位置,然后应用read([size])方法来读取它。seek()方法的基本语法如下:
file.seek的参数描述(offset [,when]):
File:表示已经打开的文件对象。Offset:用于指定要移动的字符数,其具体位置与何时有关。何时:用于指定开始计算的位置。值0表示从文件的开头开始,值1表示从当前位置开始,值2表示从文件的结尾开始。默认值为0。注意:对于where参数,如果打开文件时没有使用B模式(即rb),则只允许从文件开头开始计算相对位置。当从文件末尾开始计算时,将抛出图中所示的异常:
例如,如果您想从文件的第6个字符中读取2个字符,您可以使用以下代码:
以( message.txt , r )为文件:#打开文件。
File.seek(5) #将指针移动到新位置
String=file.read(2) # Read 2个字符
如果message.txt文件中的内容是:
13456789然后执行上述代码将显示以下结果:
注意:使用seek()方法时,offset的值是按照一个汉字占用两个字符,英文和数字点占用一个字符来计算的,与read(size)方法不同。
2.读取一行在使用read()方法读取文件时,如果文件很大,一次性将所有内容读入内存,容易导致全年内存不足,所以要逐行读取。对象提供readline()方法来一次读取一行数据。readline()方法的语法格式如下:
File.readline()其中File是打开的file对象。和read()方法一样,打开文件时,指定的模式是R(只读)或R(读写)。
打印( \n ,= * 20, Python经典应用程序,= * 20)
使用open(message.txt , r ,encoding=utf-8 )作为文件:
Number=0 #记录行号
虽然正确:
数字=1
line=file.readline()
如果line==“”:
破裂
print(number,line,end=\n )
如果message.txt文件中的内容如下图所示,则打印( \ n ,= * 20, over * 20, \ n ):
执行上述代码,将显示以下内容:
3.读取所有行读取所有行的函数类似于调用read()方法而不指定大小,只是在读取所有行时,返回一个字符串列表,每个元素都是文件的一行内容。使用file对象的readlines()方法读取所有行,其语法格式如下:
File.readlines()其中File是一个打开的file对象,和read()方法一样,当打开一个文件时,指定的模式是R(只读)或者R(读写)。
例如,readlines()方法读取message.txt文件中的所有内容,并输出读取内容的结果。代码如下:
打印( \n ,= * 20, Python经典应用程序,= * 20)
使用open(message.txt , r ,encoding=utf-8 )作为文件:
Message=file.readlines() #读取所有信息
打印(消息)
Print (\ n ,= * 20, over ,= * 20, \ n )执行上述代码,将显示以下内容:
从运行结果可以看出,readlines()方法的返回值是一个字符串列表。在这个字符串列表中,每个元素都是一行内容。如果文件很大,用这种方法输出读取的文件内容会很慢。此时,列表的内容可以逐行输出。例如,代码可以修改如下:
打印( \n ,= * 20, Python经典应用程序,= * 20)
使用open(message.txt , r ,encoding=utf-8 )作为文件:
Messageall=file.readlines() #读取所有信息
对于messageall中的消息:
Print(message) #输出消息
Print (\ n ,= * 20, over ,= * 20, \ n )执行上述代码,将显示以下内容:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。