1.python中常用的文件操作有open,write,read,readline,readlines,writelines,seek,tell,close等。
open的函数原型为open(name[,mode[,buffering]]),name为文件的路径名,常见的mode有’r’ (读模式),’w’ (写模式),’a’追加模式,’b’ ( 二进制模式) ‘+’(可读可写模式),buffering的值设为0,文件的操作是没有缓冲的,如果为1,表示有缓冲,读写在内存中进行然后从缓冲区写入硬盘,读写效率更高。readline为读取一行,readlines为读取所有行,writelines向文件写入需要加上换行符。在文件读写完成后,需要调用close函数将文件关闭。下面文件读写操作的实例:有文件D:\\so.txt,文件内容是:
Life is too short to wake up in themorning with regrets.
So,
love the people who treat you rightand forget about the ones who do not.
下面是读文本的方法:
#!/usr/bin/env python f=open('D:\\so.txt','r+') #f.write("hello world") for i in range(0,3): printf.readline() f.seek(0) lines=f.readlines() lines.append("\nlife is too short,weneed python") f.seek(0) f.writelines(lines) f.close() for line in open('D:\\so.txt','r+'): print line
在文件的迭代读取时,可以不适用变量变量存储文件对象,在文件读写结束时也不必适用close关闭文件对象。
使用with语句,也可以不调用close,因为这种情况下,文件会自动关闭。如
with open(“D:\\so.txt”) as file:
print file.readlines()
2.python 提供了shutil模块,它提供了高级文件操作,如文件的复制、移动和备份
(1) copyfile(src,dst)函数可以将文件src复制到dst,src和dst都是字符串形式的路径名,如果src和dst是相同的路径,则会引发错误,如果dst不是可写的方式打开的,会引发I/O异常,这个函数不能用于拷贝块设备文件或者管道文件。将上文中的so.txt拷贝到D:\\sotest.txt,只需调用copyfile(“D:\\so.txt”,”D:sotest.txt”)即可。
(2) 移动文件可以使用move(src,dst),这里如果dst是目录,src文件会移动到dst目录下。使用move(“D:\\so.txt”,”E:”),可以将so.txt移动到E盘。
(3) 备份文件
make_archive(base_name,format[,root_dir])
base_name 是将要创建的文件名(去掉扩展名),format是备份的格式,可以是zip,tar,batar,gztar,root_dir是要备份的文件,默认是当前的工作目录
将D:\\sotest备份为myarchive,调用方法为make_archive(“myarchive”,zip,”D:\\sotest”)