您的位置:首页 > 编程语言 > Python开发

Python学习笔记——Python开发中的文件操作

2014-12-14 01:09 246 查看
每门语言都会涉及到文件操作,本次就学习一下python中与文件操作相关的知识。

一、文件操作

1、创建空文件

os.mknod("newfile.txt")

2、打开文件操作

fp=open("newfile.txt",“w”) 打开文件写,不存在则创建,打开文件的模式主要有如下方式

w以写方式打开
a以追加模式打开(从EOF开始,必要时创建新文件)
r+以读写模式打开
w+以读写模式打开(参见w)
a+以读写模式打开(参见a)
rb以二进制读模式打开
wb以二进制写模式打开
ab以二进制追加模式打开
rb+以二进制读写模式打开
wb+以二进制读写模式打开
ab+以二进制读写模式打开
从打开模式来看,python的模式与c语言中的一致,不过c语言使用fopen,而此处为open,模式代表的意义也基本一致,所以对python的基本文件读写,打开文件方式与c一致,所以很快就可以掌握。

读写过程中常用的一些函数见下表:

fp.read(size)size为读取的长度,以byte为单位
fp.readline(size)读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines(size)吧文件每一行作为一个list的一个成员,并返回这个list。

size为读取的总长度,当读取的长度够size后,就不会读取行数了。
fp.write(str)把str写到文件中,write()不会在str后加上一个换行符
fp.writelines(seq)把seq的内容全部写到文件中(多行一次性写入)。
fp.close()关闭文件。
fp.flush()把缓冲区的内容写入磁盘
fp.fileno()返回一个长整型的文件标签
fp.isatty()文件是否是一个终端设备文件(unix linux)
fp.tell()返回文件操作标记的当前位置,以文件的开头为起点
fp.next()返回下一行,并将文件操作标记位移到下一行。

把一个file用于for ... in file这样的语句时,使用此函数来实现遍历。
fp.seek(offset,whence)将文件操作标记移到offset的位置。offset一般是相对于文件的开头来计算的,

一般为整数,但如果提供了whence参数就不一定了,whence可以为0表示从头开始

计算,1表示当前位置为起点计算,2表示以文件末尾为起点进行计算。

需要注意:如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回

到文件末尾。
fp.tuncate(size)把文件裁定规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小

还要打,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可

能是以一些随机的内容加上去。
看完上述的函数,发现基本上和c语言中读写文件类似,也是很容易掌握的,其实他的二进制读写处理能力不好,没有c语言那么潇洒的操作。。

二、目录与文件操作

目录操作的一些函数见下表,注意使用了os和shutil模块(shell工具模块)

创建目录os.mkdir("dirname")
复制文件shutil.copyfile("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")换路径
复制文件shutil.copy("oldfile","newfile") oldfile只能是文件夹,newfile可以是文件或文件夹
需要记住几个简单的区别,copy和copfile在复制文件的区别,删除目录的区别等。这些操作也不需要记住太多,更多的和Linux下的命令对应,只需要记住os和shutil的模块就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: