Saturday, February 28, 2009

自己用Python写的一个图像格式转换器 (2006-10-12 17:3...



自己用Python写的一个图像格式转换器 (2006-10-12 17:30:09)



今天同时需要把大量的JPG格式图片转换成BMP的,找了些软件都是有试用期的。我灵机一动: 为啥不自己写一个批量图片格式转换器那? 于是有了下面的东西。



  把这个脚本放到存放图像文件的目录下。输入python covimage.py 源格式,目标格式就可以了。



转换完后文件名不变,扩展名变了。



另外需要PIL这个库,太大传不上来,可以到



http://www.pythonware.com/products/pil/



下载。 现在还需要Python环境才能工作,我准备把它作成一个。EXE的文件,直接执行就可以了。





源代码:





--*-- coding:gb2312  --*--



# code by whl



import Image

import os

import sys





if len(sys.argv) != 3:

    print "Usage python covimage.py source_type target_type"

    sys.exit()

   

arg="."+sys.argv[1]

arg1="."+sys.argv[2]



#*********** 获取当前目录下指定格式的图像文件 **************

def getImageFiles():

    allfiles = os.listdir('.')



    files = []



    for f in allfiles:

        if f[-4:].lower()==arg:

            files.append(f)



    return files

   

#********************* 转换 *******************

def CovImage():

   

    filename=getImageFiles()

    for i in filename:

        x=i[:-4]  



        Image.open(i).save(x+arg1)

    

if __name__ == "__main__":



    CovImage()


Friday, February 27, 2009

如何得到一个路径下的所有子文件夹和子 文件的信息?

发信人: moonson (世界很奇妙,待我去创造), 信区: Python
标  题: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 14:59:22 2009), 转信

另外,如何判断一个路径是文件夹还是文件?
--
当知汉代的奴隶,并不专是农奴或苦役,奴隶市场出卖的奴婢,多是投入奢侈圈的,并
不是走进劳役阵线的。


※ 来源:·水木社区 http://newsmth.net·[FROM: 210.5.29.*]

发信人: Wanaka (Wanaka), 信区: Python
标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 15:00:28 2009), 转信


【 在 moonson (世界很奇妙,待我去创造) 的大作中提到: 】
: 标  题: 如何得到一个路径下的所有子文件夹和子 文件的信息?
用os.walk
: 发信站: 水木社区 (Fri Feb 27 14:59:22 2009), 转信
:
: 另外,如何判断一个路径是文件夹还是文件?
用os.path.isfile 和os.path.isdir

--

※ 修改:·Wanaka 于 Feb 27 15:02:14 2009 修改本文·[FROM: 202.120.58.*]
※ 来源:·水木社区 newsmth.net·[FROM: 202.120.58.*]

发信人: moonson (世界很奇妙,待我去创造), 信区: Python
标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 15:09:55 2009), 转信

多谢
刚才在网上看到一个os.listdir,与os.walk有何区别?

【 在 Wanaka (Wanaka) 的大作中提到: 】
: 用os.walk
: 用os.path.isfile 和os.path.isdir

--
当知汉代的奴隶,并不专是农奴或苦役,奴隶市场出卖的奴婢,多是投入奢侈圈的,并
不是走进劳役阵线的。


※ 来源:·水木社区 http://newsmth.net·[FROM: 210.5.29.*]

发信人: Wanaka (Wanaka), 信区: Python
标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 15:12:38 2009), 转信

listdir只返回制定目录下的文件和子目录,
walk返回的还有子目录下面的子目录和文件……,递归的。
用os.walk就不用os.listdir然后判断是否为目录进行再次listdir了。
【 在 moonson (世界很奇妙,待我去创造) 的大作中提到: 】
: 标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
: 发信站: 水木社区 (Fri Feb 27 15:09:55 2009), 转信
:
: 多谢
: 刚才在网上看到一个os.listdir,与os.walk有何区别?
:
: 【 在 Wanaka (Wanaka) 的大作中提到: 】
: : 用os.walk
: : 用os.path.isfile 和os.path.isdir

--

※ 来源:·水木社区 newsmth.net·[FROM: 202.120.58.*]

发信人: moonson (世界很奇妙,待我去创造), 信区: Python
标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 15:14:26 2009), 转信

got it thanks

【 在 Wanaka (Wanaka) 的大作中提到: 】
: listdir只返回制定目录下的文件和子目录,
: walk返回的还有子目录下面的子目录和文件……,递归的。
: 用os.walk就不用os.listdir然后判断是否为目录进行再次listdir了。

--
当知汉代的奴隶,并不专是农奴或苦役,奴隶市场出卖的奴婢,多是投入奢侈圈的,并
不是走进劳役阵线的。


※ 来源:·水木社区 http://newsmth.net·[FROM: 210.5.29.*]

发信人: N23 (23号), 信区: Python
标  题: Re: 如何得到一个路径下的所有子文件夹和子 文件的信息?
发信站: 水木社区 (Fri Feb 27 15:44:11 2009), 转信

Shell:~/mylibs/lib/Python/MyPyLib >: cat DirectoryStatWalker.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os
import stat

class DirectoryStatWalker:
    # a forward iterator that traverses a directory tree, and
    # returns the filename and additional file information

    def __init__(self, directory):
        self.stack = [directory]
        self.files = []
        self.index = 0

    def __getitem__(self, index):
        while 1:
            try:
                file = self.files[self.index]
                self.index = self.index + 1
            except IndexError:
                # pop next directory from stack
                self.directory = self.stack.pop()
                self.files = os.listdir(self.directory)
                self.index = 0
            else:
                # got a filename
                fullname = os.path.join(self.directory, file)
                st = os.stat(fullname)
                mode = st[stat.ST_MODE]
                if stat.S_ISDIR(mode) and not stat.S_ISLNK(mode):
                    self.stack.append(fullname)
                return fullname, st

if __name__ == '__main__':
    for file, st in DirectoryStatWalker("/usr/include"):
        print file, st[stat.ST_SIZE]

【 在 moonson (世界很奇妙,待我去创造) 的大作中提到: 】
: 另外,如何判断一个路径是文件夹还是文件?

Thursday, February 12, 2009

最简单的下载网页的方法
































打印

用python下载网页,超级简单!
















用python下载网页,超级简单!






  1. <br>  
  2. from urllib import urlopen<br>  
  3. <br>  
  4. webdata = urlopen("http://www.<span href="tag.php?name=python" onclick="tagshow(event)" class="t_tag">python</span>id.com").read()<br>  
  5. print webdata<br>  


from urllib import urlopen



webdata = urlopen("http://www.pythonid.com").read()

print webdata



够简单吧,哈哈。










TOP























python最适合干这种事情了!










TOP























我来补充点,你那只能说是查看网页,怎能说是下载呢,总得如存吧



import urllib

webfile = urllib.urlopen("http://www.insenz.com").read()

fp = file('rhf.html', 'a+')

#fp = open('rhf.html', 'a+')

fp.write(webfile)

fp.close()










TOP





















回复 #3 hongfu 的帖子




运行后得到这个





错误

您所请求的网址(URL)无法获取



--------------------------------------------------------------------------------



当尝试进行以下请求时:



GET  HTTP/1.0



Host: www.insenz.com



User-Agent: Python-urllib/1.17









发生了下列的错误:



Invalid Request

无效的请求

Some aspect of the HTTP Request is invalid. Possible problems:

HTTP 请求的某些方面是无效的。可能是下列问题:



Missing or unknown request method

缺少请求方式或未知的请求方式

Missing URL

缺少网址

Missing HTTP Identifier (HTTP/1.0)

缺少 HTTP 标识(HTTP/1.0)

Request is too large

请求命令过长

Content-Length missing for POST or PUT requests

POST 或 PUT 请求缺少内容长度

Illegal character in hostname; underscores are not allowed

主机名称中包含不合法的字符;下划线是不允许的。



本缓存服务器管理员:cacheadmin@discuz.com.







--------------------------------------------------------------------------------



Generated Tue, 10 Jul 2007 09:40:24 GMT by cache.discuz.net (squid/2.5.STABLE14)










TOP























在后边加上index.html试一下







Invalid Request

无效的请求

Some aspect of the HTTP Request is invalid. Possible problems:

HTTP 请求的某些方面是无效的。可能是下列问题:










TOP























恩?? 我就可以呢??










TOP























哦,我没有试 www.insenz.com , 我试的 http://www.pythonid.com










TOP























可能是你访问不了这台服务器,哈哈










TOP























最简单的下载网页的方法只有2句:



from urllib import urlretrieve



urlretrieve('http://www.python.org', 'f:\\python_webpage.html')










TOP


























Sunday, January 18, 2009

python获得并输出文件属性






python获得并输出文件属性
代码:
import os
import time
file = "samples/sample.jpg"
def dump(st):
    mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime = st
    print "- size:", size, "bytes"
    print "- owner:", uid, gid
    print "- created:", time.ctime(ctime)
    print "- last accessed:", time.ctime(atime)
    print "- last modified:", time.ctime(mtime)
    print "- mode:", oct(mode)
    print "- inode/dev:", ino, dev
# get stats for a filename
st = os.stat(file)
print "station", file
dump(st)
print st

# get stats for an open file
fp = open(file)
st = os.fstat(fp.fileno())
print "fstat", file
dump(st)

print st.st_ctime


201865413.8952832



import os
>>> o=os.stat(r'F:\\Xunlei\160103.doc')
>>> t=o.st_ctime
>>> t
1202624180.046875
>>> print type(t)
<type 'float'>
>>> import time
>>> r=time.ctime(t)
>>> r
'Sun Feb 10 14:16:20 2008'
>>> s=time.gmtime(t)
>>> s
(2008, 2, 10, 6, 16, 20, 6, 41, 0)
>>> time.strftime("%a, %d %b %Y %H:%M:%S +0000", s)
'Sun, 10 Feb 2008 06:16:20 +0000'