北京 切换校区

全国24小时免费热线

400-009-1906

Python文件操作方法大总结

时间:2019-01-23   来源:尚学堂   阅读:244
首页> 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()

相关资讯

  • 北京校区
  • 山西校区
  • 郑州校区
  • 武汉校区
  • 四川校区
  • 长沙校区
  • 深圳校区
  • 上海校区
  • 广州校区
  • 保定招生办

北京海淀区校区(总部):北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
北京京南校区:北京亦庄经济开发区科创十四街6号院1号楼 赛蒂国际工业园
咨询电话:400-009-1906 / 010-56233821
面授课程: JavaEE+微服务+大数据     大数据+机器学习+平台架构     Python+数据分析+机器学习  人工智能+模式识别+强化学习   WEB前端+移动端+服务端渲染

 

山西学区地址:山西省晋中市榆次区大学城大学生活广场万科商业A1座702

郑州学区地址:河南电子商务产业园6号楼4层407
咨询电话:0371-55177956

武汉学区地址:武汉市东湖高新区光谷金融港B22栋11楼
咨询电话:027-87989193

四川学区地址:成都市高新区锦晖西一街99号布鲁明顿大厦2栋1003室
咨询电话:028-65176856 / 13880900114

网址:http://www.cssxt.com/
咨询电话:0731-83072091

深圳校区地址:深圳市宝安区航城街道航城大道航城创新创业园A4栋210(固戍地铁站C出口)
咨询电话:0755-23061965 / 18898413781

上海尚学堂松江校区地址:上海市松江区荣乐东路2369弄45号绿地伯顿大厦2层
咨询电话:021-67690939

广州校区地址:广州市天河区元岗横路31号慧通产业广场B区B1栋6楼尚学堂(地铁3号线或6号线到“天河客运站”D出口,右拐直走约800米)
咨询电话:020-2989 6995

保定招生办公室

地址:河北省保定市竞秀区朝阳南大街777号鸿悦国际1101室

电话:15132423123

Copyright 2006-2019 北京尚学堂科技有限公司  京ICP备13018289号-19  京公网安备11010802015183  
媒体联系:18610174079 闫老师  

Java基础班,免费试学三周