- 前言
- 一、读取文件内容
- 二、往文件写入数据
- 三、其它操作文件方法
- 四、重命名和删除文件
- 五、目录操作
Python文件操作 Python提供了必要的函数和方法进行默认情况下的文件基本操作,可以用file对象做大部分的文件操作
open函数 首先必须先用Python内置的 open() 函数 打开一个文件,创建一个file对象,相关的辅助方法才可以调用它进行读写
语法:
file object = open(file_name [, access_mode][, buffering])
各个参数的说明如下: file_name:file_name变量是一个包含了你要访问的文件名称的字符串值
access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表这个参数是非强制的,默认文件访问模式为只读(r)。 access_mode属性值介绍: 对文件的操作包含 r (读) w(写) a(追加) r:只读方式打开文件。 rb:以二进制格式打开一个文件用于只读。 r+:打开一个文件用于读写。 rb+:以二进制格式打开一个文件用于读写。 w:写的方式打开文件,表示新建或者覆盖文件,也有 wb w+ wb+ 与r类似 a 追加的方式打开文件,表示在文件内容末尾添加内容,也有 ab a+ ab+ 注:r、w方式操作文件时,文件指针指向文件开头,a方式时,指向文件末尾
buffering:如果buffering的值被设为0,就不会有寄存,如果buffering的值取1,访问文件时会寄存行,如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
File对象的属性: file.closed:返回true如果文件已被关闭,否则返回false file.mode:返回被打开文件的访问模式 file.name:返回文件的名称 file.encoding:返回文件编码
一、读取文件内容read( ) 方法:从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字
语法:
fileObject.read([count])
在这里,被传递的参数是要从已打开文件中读取的字节计数,该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾
例如:
a = open('c:/a.txt','r+');
str = a.read(3);
print(str);
关闭文件: File对象的close( ) 方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入
语法:
fileObject.close();
二、往文件写入数据
Write() 方法可将任何字符串写入一个打开的文件,需要重点注意的是,Python字符串可以是二进制数据,而不仅仅是文字
Write( ) 方法:不在字符串的结尾不添加换行符(‘\n’) flush( ) 方法:刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件
语法:
fileObject.write(string);
fileObject.flush();
文件位置: Tell( ) 方法:告诉你文件内的当前位置,换句话说,下一次的读写会发生在文件开头这么多字节之后
seek(offset [,from]) 方法:改变当前文件的位置,Offset变量表示要移动的字节数,From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置
三、其它操作文件方法fp.readline([size]);
"""读一行,如果定义了size,有可能返回的只是一行的一部分"""
fp.readlines([size]);
"""把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用
readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到
文件的一部分。"""
fp.writelines(seq);
"""把seq的内容全部写到文件中(多行一次性写入)。如果需要换行则要自己加入每行的换行符"""
next(fp);
"""返回下一行,并将文件操作标记位移到下一行。如果需要换行则要自己加入每行的换行符"""
四、重命名和删除文件
Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件
要使用这个模块,你必须先导入它,然后可以调用相关的各种功能。
import os
rename( ) 方法:rename()方法需要两个参数,当前的文件名和新文件名
语法:
os.rename(current_file_name, new_file_name);
remove( ) 方法:你可以用remove()方法删除文件,需要提供要删除的文件名作为参数
语法:
os.remove(file_name);
五、目录操作
mkdir( ) 方法:可以使用os模块的mkdir()方法在当前目录下创建新的目录 语法:
os.mkdir("newdir")
chdir( ) 方法:可以用chdir()方法来改变当前的目录 语法:
os.chdir("newdir")
rmdir( ) 方法:删除目录,目录名称以参数传递。在删除这个目录之前,它的所有内容应该先被清除 语法:
os.rmdir('dirname')
makedirs()方法:创建多级目录 语法:
os.makedirs(“c:\python\test”)
getcwd( ) 方法:得到当前工作目录 语法:
os.getcwd()
isdir()/isfile( )方法:检验给出的路径是否是一个目录/文件
os.path.isdir('E:\\python\\temp')
