刚才在写代码的时候,遇到python文件存储的操作,但是当时自学的时候看的一知半解,对于操作不是很熟悉。写下这篇博客,一是为了强化自己的记忆,以便于更好的掌握这个知识;二是防止以后再忘记,留下记录供我以后查看。
Python提供了一系列的操作函数、控件和文件系统对象,利用他们可以实现对文件系统的操作。
Python数据文件操作的一般步骤:
(1)打开或建立文件
(2)访问文件(进行读、写操作)
(3)关闭文件
一、文件的基本操作
1、打开或建立文件
Python中用内建函数open()语句打开或建立一个文件。
file_object = open(file_name, mode='r', buffering=-1)
其中file_name为强制参数,表示文件名;模式(mode)和缓冲(buffering)参数是可选的。
说明:如果open()函数只有file_name一个参数,能获得读取文件内容的文件对象,如果想要写文件,则需要选择某一个模式(mode),下面是open()函数模式参数的常用值表。
第三个参数buffering控制文件的缓冲,如果参数为0或者False,则I/O无缓冲;如果是1/True,则I/O为有缓冲。大于1的数字代表缓冲区的大小,单位是字节,-1或负数代表使用默认的缓冲区大小。
2、文件的关闭
file.close()
文件的读写操作完成后,使用close()语句进行文件的关闭。(若不关闭文件,会造成数据丢失)
3、另外一种打开文件的操作
with open(file_name, mode='r', buffering=-1) as f:
pass
这种方式必须要在已有文件的情况下使用,打开之后不必使用close()函数来关闭文件,操作完成后会自动关闭文件,我们在编程过程中,这种方式是我们的常用方式。
二、文件的读写操作
1、文件的读操作
Python的文本文件的内容读取,常用的有三类方法:
- read()
- readline()
- readlines()
(1)read():一次性读取文件的所有内容放在一个大的字符串中,即存在内存中。
file_object = open('test.txt')
try:
file_content = file_object.read() # 将文件的所有内容存在file_content
finally:
file_object.close()
特点:方便简单,一次性读取文件的所有内容放在一个大字符串中,速度最快,但有时候文件过大,占用内存也会过大。
(2)readline():readline()逐行读取文本。
with open('text.txt') as f:
line = f.readline()
while line:
print(line)
line = f.readline()
运行截图:
特点:readline()占用内存小,逐行读取,速度较慢。
(3)readlines():一次性读取文本所有内容,结果是一个list,list的内容是每行的文本。
with open('text.txt') as f:
line = f.readlines()
print(type(line))
for i in line:
print(i)
运行截图:
特点:readlines()读取的内容,每行文本都会带一个‘n’换行符。速度较快,但是随着文本的增大,占用内存也会越来越多。
三、小结
总的来说,Python的文件操作还是非常简单的,把这几个简单的函数给记住,基本都能够满足我们的需求。