【python篇】python如何操作文件

目录

打开文件方式

常用访问模式及其说明

关闭文件对象的方法close()

文件读写


个人感觉,python处理文件还是比较简单的,不像Java还要创建一大堆对象,还要调用一大堆方法,而python只使用一个方法就做到了,挺厉害的;

打开文件方式

调用python的内置函数open可以打开对应文件:

  1. 参数有三个:文件地址、访问文件的权限、编码类型;

     open(file,mode,encoding)
    • mode参数有三个值,分别是:r、w、a、分别指只读、写入、apende追加模式;

    • 其中主要注意的是w模式下,向文件中写入数据时,会先将文件中的数据做一个清空操作;

    • 还有注意的是,在r 模式下,如果输入的文件不存在,他不会自己创建会直接报错,而w模式下当文件不存在时,他会创建空文件;

  2. 返回值类型,返回的是对应文件的一个对象,我们可以通过该对象操作该文件;

  3. 常用方法:

    • read(num); 读取指定字节长度的数据并移动指针;

    • readline(); 读取文件中的一行数据,指针向后移动;可以伴随使用for循环多次访问;

    • readlines();读取文件中的所有行数据;

使用with open()as f ;方式打开文件,这个方法的特殊之处在于,不需要设置对象去接受文件对象,他直接就把文件对象赋值给了f;我们使用时直接使用f去调用方法;

常用访问模式及其说明

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 

当然你也可以组合使用:

rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

关闭文件对象的方法close()

当我们生成一个文件对象时,当前对象会占用该文件,如果不释放资源,他就会一直占用资源,

python中的close()方法,不同于java的是,python中close()方法功能还包括了flush()刷新缓冲区的功能;

python中向文件中写入数据时,他直接采用的是带有缓冲区功能的写入方法,这点也区别于java,java中向文件中写入数据的方法分有缓冲区和无缓冲区的;

文件读写

写数据(write)
使用write()可以完后向文件写入数据

f = open("test.txt","w") #打开文件,w模式(写模式),文件不存在就新建
f.write("hello world,I am here!")   #将字符串写入文件中
f.close()   #关闭文件

读数据(read)

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有数据

#读:read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f = open("test.txt","r")
content = f.read(5) #一次读五个字符
print(content)
print('-'*30)
content = f.read()
print(content)
f.close()

读数据(readlines)

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性的读取,并且返回的是一个列表,其中每一行的数据为一个元素

f = open("test.txt","r")
content = f.readlines() # 一次性读取全部文件为列表,每行一个字符串
print(content) #['hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n',

i = 1
for temp in content:
    print("%d:%s"%(i,temp))
    i += 1
f.close()

读数据(readline)

readline一次读取一行

f = open("test.txt","r")
content = f.readline() #1:hello world,I am here!--1
print("1:%s"%content)

content = f.readline() #2:hello world,I am here!--2
print("2:%s"%content)
f.close()

猜你喜欢

转载自blog.csdn.net/m0_64231944/article/details/130720906
今日推荐