python中的文件处理
在Python中用于文件处理的函数主要有以下几个:
0x01 open()函数
如果要对一个文件进行处理,首先需要打开这个文件。使用open()函数打开一个文件,创建一个file对象,然后才可以使用其他方法对文件进行读写操作。open()函数的完整语法如下。
file object = open(file_name[,access_mode][,buffering])
这里面的object就是一个file对象,file_name就是要打开目标文件的名称,access_mode时打开文件之后的模式,buffering就是要对文件进行的字符编码默认情况下是只读模式r,也就是不能改写该文件。常见的模式包括r(读模式)、w(写模式)、a(追加模式)、b(二进制模式)、+(读/写模式)。而这些模式还可以组合使用,例如,wb表示以二进制格式打开一个文件只用于写入,若该文件已存在则将其覆盖,若不存在在创建新文件。w+ 表示以二进制格式打开一个文件只用于写入,若该文件已存在则将其覆盖,若不存在在创建新文件。wb+ 表示以二进制格式打开一个文件只用于写入,若该文件已存在则将其覆盖,若不存在在创建新文件。
下面打开一个以 test.txt 为名的文件,并对其进行读写操作。
target = open("test.txt","w+",encoding='utf-8')
这里需要注意一下,我们的Windows默认字符编码是gbk,而我们写的代码默认是UTF-8编码的,所以我在末尾加上了一个encoding='utf-8’进行字符编码,如果不进行编码就会报错。
0x02 read()函数
打开一个文件之后,就可以使用read()对其中的内容进行读取了,这个函数格式如下所示。
fileObject.read([count]);
这里的count表示要从打开文件中读取字节数。例如:
str = target.read(100)
0x03 write()函数
打开一个文件之后还可以使用write()方法将任何字符串写入一个打开的文件。write()函数的格式如下所示.
target.write(string);
例如,将“Hello Python”写入到test.txt中,就可以使用write()方法。
f = open('test.txt','w',encoding='utf8')
f.write('Hello,Python!\n')
f.close()
0x04 colse()函数
File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能在进行写入。
还是以上面这段代码为例:
f = open('test.txt','w',encoding='utf8')
f.write('Hello,Python!\n')
f.close()
f.write('我不会被写入,呜呜呜~')
当我们加上close()函数以后,程序运行到它哪里的时候就相当于遇到了红灯,并且会报错。
除了以上函数,还有很多高效的文件处理函数,像readline()、readtable()、writelines()、writtable()等,这里就不一一介绍了。可以去看一下Python标准库