Python文件操作方法大总结

文件操作必不可少的是open函数:对文件读写之前,需要先打开文件,获取文件句柄

注意:open() file() 尽量使用open(),Python3以后不支持file()了

1、open方法原型解释

open(file_name[,access_mode][,buffering])

(1)参数说明

file_name:一个包含了你要访问的文件路径及文件名称的字符串值。尽量使用绝对路径

access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r)

r,只读

w:写之前会清空文件的内容

a:追加的方式,在原本内容中继续写

buffering:先写到缓存中

如果buffering的值被设置为0,就不会有寄存;如果值为1,访问文件时会缓存行;如果值位大于1的整数,表明了这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。该参数也是非强制性的。

(2)返回值

该语句表示返回的File_object是一个指向文件的指针(一个文件对象)文件句柄。当以只读模式(r)打开一个不存在的文件时,就会报IOError异常(文件不存在),但如果是以写或追加模式(w/a/a+)打开一个不存在的文件时,默认会创建该文件,但如果是所在路径中有目录不存在,也会报IOError异常

 常用方法列表

操作说明
os.getcwd()得到当前工作目录,即当前Python脚本工作的目录路径
os.listdir()返回指定目录下的所有文件和目录名
os.remove()函数用来删除一个文件
os.removedirs(r”c\python”)删除多个目录
os.path.isfile()检验给出的路径是否是一个文件
os.path.isdir()检验给出的路径是否是一个目录
os.path.isabs()判断是否是绝对路径
os.path.exists()检验给出的路径是否真地存
os.path.split()返回一个路径的目录名和文件名
os.path.splitext()分离扩展名
os.path.dirname()获取路径名
os.path.basename()获取文件名
os.system()运行shell命令
os.getenv() 与os.putenv()读取和设置环境变量
os.linesep 给出当前平台使用的行终止符,Windows使用’rn’,Linux使用’n’而Mac使用’r’
os.name指示你正在使用的平台,对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’
os.rename(old, new)重命名:
os.makedirs(r”c:\python\test”)创建多级目录
os.mkdir(“test”)创建单个目录
os.stat(file)获取文件属性
os.chmod(file)修改文件权限与时间戳
os.exit()终止当前进程
os.path.getsize(filename)获取文件大小
os.mkdir(“file”)创建目录
shutil.copyfile(“oldfile”,”newfile”)复制文件, oldfile和newfile都只能是文件
shutil.copy(“oldfile”,”newfile”)oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
shutil.copytree(“olddir”,”newdir”)复制文件夹, olddir和newdir都只能是目录,且newdir必须不存在
os.rename(“oldname”,”newname”)重命名文件(目录),文件或目录都是使用这条命令
shutil.move(“oldpos”,”newpos”)移动文件(目录)
os.remove(“file”)删除文件
os.rmdir(“dir”)删除目录, 只能删除空目录
shutil.rmtree(“dir”)空目录、有内容的目录都可以删
os.chdir(“path”)转换目录, 换路径
os.mknod(“test.txt”)创建空文件

2、mode文件操作模式

r,w,a

r+可读可写

w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

模式列表

操作说明
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w以写方式打开,
a以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+以读写模式打开
w+以读写模式打开 (参见 w )
a+以读写模式打开 (参见 a )
rb以二进制读模式打开
wb以二进制写模式打开 (参见 w )
ab以二进制追加模式打开 (参见 a )
rb+以二进制读写模式打开 (参见 r+ )
wb+以二进制读写模式打开 (参见 w+ )
ab+以二进制读写模式打开 (参见 a+ )

3、通过open获取到的文件句柄可以对文件作的其他操作

(1)fp.closed

判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false

(2)fp.mode

输出读写模式。返回被打开文件的访问模式。

(3)fp.name:

返回文件的名称。

(4) fp.softspace

如果用print输出后,是否跟一个空格符,false不打印,true则打印。

(5)fp.close()

刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

(6)flush()

把缓冲区中的内容持久化写到磁盘里

缓存区写满的情况,系统会自动调用flush()方法。

调用flush的时机:写入了多少长度的数据,或者间隔了多长的时间

如果没有flush(),持久化内容丢失

(7)next()

for i in fp:
    print i

把一个file用for…in file这样的循环遍历语句时,就是调用next()函数来实现。

fp=open(fileName,'r')
print fp.next()
print fp.next()
print fp.fileno() #判断当前操作的文件句柄是哪一个number
fp.close()

点赞