文件的打开或创建#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
filehandler = open("test.txt","w") #以写模式打开文件,如果文件不存在则创建
filehandler.write("this is a file open/create test. the second line.")
filehandler.close()
#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
filehandler = open("test.txt","a") #以追加模式打开文件,如果文件不存在则创建
filehandler.write(" append the text in another line. ")
filehandler.close()
读取文件#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
filehandler = open("test.txt","r") #以读方式打开文件,rb为二进制方式(如图片或可执行文件等)
print "read() function:" #读取整个文件
print filehandler.read()
print "readline() function:" #返回文件头,读取一行
filehandler.seek(0)
print filehandler.readline()
print "readlines() function:" #返回文件头,返回所有行的列表
filehandler.seek(0)
print filehandler.readlines()
print "list all lines" #返回文件头,显示所有行
filehandler.seek(0)
textlist = filehandler.readlines()
for line in textlist:
print line
print "seek() function" #移位到第32个字符,从33个字符开始显示余下内容
filehandler.seek(32)
print filehandler.read()
print "tell() function" #移位到文件头,从头开始显示2位字符
filehandler.seek(0)
print filehandler.readline() #显示第一行内容
print filehandler.tell() #显示当前位置
print filehandler.readline() #显示第二行内容
print filehandler.read() #显示余下所有内容
filehandler.close() #关闭文件句柄
文件系统操作#!/usr/bin/env python
#-*- encoding:utf-8 -*-
import os,fnmatch,glob
for fileName in os.listdir ( "/root" ): #列出/root目录内容,不包括.和..
print fileName
os.mkdir("py") #在当前目录下创建一个py目录,且只能创建一层
os.rmdir( "py") #在当前目录下删除py目录,且只能删除一层
os.makedirs("py/aa") #可创建多层目录
os.removedirs("py/aa") #可删除多层目录
print "demonstration fnmatch module"
for fileName in os.listdir ( "/root/python/file" ):
if fnmatch.fnmatch(fileName,"*.txt"): #利用UNIX风格的通配,只显示后缀为txt的文件
print fileName
print "demonstration glob module"
for fileName in glob.glob ( "*.txt" ): #利用UNIX风格的通配,只显示后缀为txt的文件
print fileName
获取文件状态#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
import os,time,stat
fileStats = os.stat ( "test.txt" ) #获取文件/目录的状态
fileInfo = {
"Size":fileStats [ stat.ST_SIZE ], #获取文件大小
"LastModified":time.ctime( fileStats [ stat.ST_MTIME ] ), #获取文件最后修改时间
"LastAccessed":time.ctime( fileStats [ stat.ST_ATIME ] ), #获取文件最后访问时间
"CreationTime":time.ctime( fileStats [ stat.ST_CTIME ] ), #获取文件创建时间
"Mode":fileStats [ stat.ST_MODE ] #获取文件的模式
}
#print fileInfo
for field in fileInfo: #显示对象内容
print "%s:%s" % (field,fileInfo[field])
#for infoField,infoValue in fileInfo:
# print "%s:%s" % (infoField,infoValue)
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ): #判断是否路径
print "Directory. "
else:
print "Non-directory."
if stat.S_ISREG ( fileStats [ stat.ST_MODE ] ): #判断是否一般文件
print "Regular file."
elif stat.S_ISLNK ( fileSTats [ stat.ST_MODe ] ): #判断是否链接文件
print "Shortcut."
elif stat.S_ISSOCK ( fileSTats [ stat.ST_MODe ] ): #判断是否套接字文件
print "Socket."
elif stat.S_ISFIFO ( fileSTats [ stat.ST_MODe ] ): #判断是否命名管道
print "Named pipe."
elif stat.S_ISBLK ( fileSTats [ stat.ST_MODe ] ): #判断是否块设备
print "Block special device."
elif stat.S_ISCHR ( fileSTats [ stat.ST_MODe ] ): #判断是否字符设置
print "Character special device."
#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
import os.path
fileStats = "test.txt"
if os.path.isdir ( fileStats ): #判断是否路径
print "Directory."
elif os.path.isfile ( fileStats ): #判断是否一般文件
print "File."
elif os.path.islink ( fileStats ): #判断是否链接文件
print "Shortcut."
elif os.path.ismount ( fileStats ): #判断是否挂接点
print "Mount point."
串行化文件#!/usr/bin/env python
#-*- encoding:UTF-8 -*-
import pickle
filehandler = open("pickle.txt","w")
text = ["this is a pickle demonstrate","aa","bb"]
pickle.dump(text,filehandler) #把text的内容序列化后保存到pickle.txt文件中
filehandler.close()
filehandler2 = open("pickle.txt")
textlist = pickle.load(filehandler2) #还原序列化字符串
print textlist
filehandler2.close()
#cpickle是用C写的pickle模块,比标准的pickle速度快很多,使用方法同pickle。
内存文件#!/usr/bin/env python
#-*- coding: utf-8 -*-
import StringIO
fileHandle = StringIO.StringIO ( "Let freedom ring." ) #create file in memory
print fileHandle.read() # "Let freedom ring."
fileHandle.close()
#cStringIO是用C写的StringIO模块,执行速度比StringIO快。