文件操作案例
#-*- coding:utf-8 -*-
import os
#此文件是给file的使用一个范例:
#首先,我们需要熟记file的三种模式:r+,w+.a+
#其次,如果需要同时使用读写功能,记住光标的位置,例如在写入后,光标是放在了文件的最后面,这个时候执行read是返回为None的,因为已经是最后了
def fileDeal():
#创建一个文件
data = open("file.txt","w+")
#写入内容
data.write("begin:\n")
num = ['test', 125, 'hello world', '文档内容','red', 'file model']
for i in num:
data.write(str(i)+"\n")
data.write("The end.")
#tell()可以告诉我们现在光标所在的字节数
position = data.tell()
print "如今光标在:",position
#seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
# 如果from被设为0,这意味着将文件的开头作为移动字节的参考位置;
# 如果设为1,则使用当前的位置作为参考位置;
# 如果它被设为2,那么该文件的末尾将作为参考位置。
#重新定位到开头
data.seek(0,0)
#read(count),count可以指定光标在多少字节数后
dt = data.read()
print "file.txt文档内容为:"
print dt
data.close()
print "#"*100
print
def fileAdd():
#如何在已经存在数据的文件上追加内容,使用a+模式
data = open("file.txt","a+")
#文件data 的名字用data.name表示
name = data.name
#如果在已经存在内容的文件中直接调用write函数,则在文档后追加内容
data.write("There're not the end, if we don't give up. ")
#重新定位光标到开头,之后的read才能将文档内容从头读取,否则读取的内容也是在光标之后,即内容为空
data.seek(0,0)
print data.read()
data.close()
return name
def fileRename(name,newname):
#对文件重命名
os.rename(name,newname)
data = open(newname,"r+")
print "*"*50
data.read()
print "name:",data.name
print "所有操作完毕,删除文件!"
data.close()
#删除文件
os.remove(newname)
if __name__ == "__main__":
fileDeal()
name = fileAdd()
fileRename(name,"Deletedfile.txt")
输出内容:
如今光标在: 64
file.txt文档内容为:
begin:
test
125
hello world
文档内容
red
file model
The end.
####################################################################################################
begin:
test
125
hello world
文档内容
red
file model
The end.There're not the end, if we don't give up.
**************************************************
name: Deletedfile.txt
所有操作完毕,删除文件!