码迷,mamicode.com
首页 > 编程语言 > 详细

Python8-24

时间:2014-08-24 15:24:02      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   io   文件   for   

pickle存取图片

#Open your images in binary mode and read them in as binary strings then
#save them in a list/dict/tuple , then pickle it.
>>> import Image, pickle, cStringIO
>>> i = open(‘c:/1.jpg‘, ‘rb‘)
>>> i.seek(0)
>>> w = i.read()
>>> i.close()
>>> dic =  {‘1‘:w,‘2‘:w,‘3‘:w,‘4‘:w}
>>> p = pickle.dumps(dic)
# storage would happen at this point

#Ok now you take your pickled string and unpickle your object and select
#the item you want and put it in a cStringIO or StringIO so we can open
#it directly with PIL.
# sometime in the future
>>> o = pickle.loads(p)
>>> one_im = o[‘1‘]
>>> c = StringIO.StringIO()
>>> c.write(one_im)
>>> c.seek(0)
>>> im = Image.open(c)
>>> im.show()

#Alternatively you can create a StringIO object and pickle that in your
#dictionary so you can just load it later with PIL.

This module implements a file-like class, StringIO, that reads and writes a string buffer (also known as memory files). See the description of file objects for operations (section File Objects). (For standard strings, see str and unicode.)

 

#拆分目录与文件
os.path.split()
#连接目录与文件
os.path.join(path,name)
#返回文件名
os.path.basename(path)
#返回路径
os.path.dirname(path)

遍历目录

import os,sys
def listdir(dir,file):
    file.write(dir + ‘\n‘)
    fielnum = 0
    list = os.listdir(dir)  #列出目录下的所有文件和目录
    for line in list:
        filepath = os.path.join(dir,line)
        if os.path.isdir(filepath):  #如果filepath是目录,则再列出该目录下的所有文件
            myfile.write(‘   ‘ + line + ‘\\‘+‘\n‘)
            for li in os.listdir(filepath):
                myfile.write(‘     ‘+li + ‘\n‘)
                fielnum = fielnum + 1
        elif os.path:   #如果filepath是文件,直接列出文件名
            myfile.write(‘   ‘+line + ‘\n‘)
            fielnum = fielnum + 1
    myfile.write(‘all the file num is ‘+ str(fielnum))
dir = raw_input(‘please input the path:‘)
myfile = open(‘list.txt‘,‘w‘)
‘‘‘os.walk方法

os模块提供的walk方法很强大,能够把给定的目录下的所有目录和文件遍历出来。

方法:os.walk(path),遍历path,返回一个对象,他的每个部分都是一个三元组,(‘目录x‘,[目录x下的目录list],目录x下面的文件)
‘‘‘
import os
def walk_dir(dir,fileinfo,topdown=True):
    for root, dirs, files in os.walk(dir, topdown):
        for name in files:
            print(os.path.join(name))
            fileinfo.write(os.path.join(root,name) + ‘\n‘)
        for name in dirs:
            print(os.path.join(name))
            fileinfo.write(‘  ‘ + os.path.join(root,name) + ‘\n‘)
dir = raw_input(‘please input the path:‘)
fileinfo = open(‘list.txt‘,‘w‘)
walk_dir(dir,fileinfo)

‘‘‘topdown决定遍历的顺序,如果topdown为True,则先列举top下的目录,然后是目录的目录,依次类推,反之,则先递归列举出最深层的子目录,然后是其兄弟目录,然后子目录。
‘‘‘

 

Python8-24

标签:des   style   blog   http   color   os   io   文件   for   

原文地址:http://www.cnblogs.com/zxpgo/p/3932768.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!