常用于文件读写操作
常用方法: file, open, read, readline(), readlines(),write(),
writelines(), seek(), tell(),flush(), close()
属性:name, mode, isatty, closed
2. 获取文件信息:os,  stat, time
    os.stat()
    os.lstat()
    
    stat模块获取详细文件信息
  
    fileStats = os.stat(filename)
    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 ]
           }
3. 通过os.path获取一些文件信息
    文件是否存在、是否是一个目录、...
    获取文件大小、创建、访问、修改时间
4. 目录操作
    os.listdir(dir)
    os.mkdir(dir)
    os.rmdir(dir)
    os.mkdirs(dirs)  # mkdir -p
    os.rmdirs(dirs)  # rm -r
5. 对不同类型的文件进行操作:fnmatch
import os, fnmatch
for filename in os.listdir('.'):
    if fnmatch.fnmatch(filename, '*.py'):
        print open(filename).read()
    elif fnmatch.fnmatch(filename, '*.sh'):
        print filename
    elif fnmatch.fnmatch(filename, '?.txt'):
        print 'Text file :', filename
*代表匹配所有字符,?匹配一个任意字符
在"fnmatch"模块,我们可以创建正则表达式来应用,只要通过 "re" 模块:
        import fnmatch
        import os
        import re
        filePattern = fnmatch.translate ( '*.txt' )
        for fileName in os.listdir ( '/' ):
            if re.match ( filePattern, fileName ):
                print 'Text file.'
如果想从一个目录下搜索一种类型的所有文件,使用glob:
glob(pathname)
    Return a list of paths matching a pathname pattern.
    
#!/usr/bin/env python
import glob
for filename in glob.glob('[0-9].txt'):print filename
6. 序列化数据
   pickle, cpickle
  
   #!/usr/bin/env python
   import pickle
   fileHandle = open('pickleFile.txt', 'w')
   thisList = ['This', 2, 'is', 1, 'a', 'test']
   pickle.dump(thisList, fileHandle)
   fileHandle.close()
   解序列
   #!/usr/bin/env python
   import pickle
  fileHandle = open('pickleFile.txt', 'r')
  thisList = pickle.load(fileHandle)
  fileHandle.close()
7. 内存文件:StringIO, cStringIO
a small tip : print >> f, a_string 等价于 f.write(a_string + '\n')
No comments:
Post a Comment
您的评论将使我blog更有动力~