python点滴
自动备份文件到gmail的python脚本

自动更换 gnome 桌面壁纸的python脚本

王者归来 posted @ 2009年4月23日 17:35 in python with tags script , 2426 阅读

 

#!/usr/bin/env python
# vim: set fileencoding=utf-8:
import os.path, fnmatch
import os, random, time

def listFiles(root, patterns='*', recurse=1, return_folders=0):

    # Expand patterns from semicolon-separated string to list           
    pattern_list = patterns.split(';')
    # Collect input and output arguments into one bunch
    class Bunch:
        def __init__(self, **kwds): self.__dict__.update(kwds)
    arg = Bunch(recurse=recurse, pattern_list=pattern_list,
        return_folders=return_folders, results=[])

    def visit(arg, dirname, files):
        # Append to arg.results all relevant files (and perhaps folders)
        for name in files:
            fullname = os.path.normpath(os.path.join(dirname, name))                #目录规范化
            if arg.return_folders or os.path.isfile(fullname):                      #判断是否返回目录。 是否是文件
                for pattern in arg.pattern_list:                                    #模式匹配用 "or" ,符合一个就ok
                    if fnmatch.fnmatch(name, pattern):
                        arg.results.append(fullname)                                #结果中添加文件名称
                        break
        # Block recursion if recursion was disallowed
        if not arg.recurse: files[:]=[]                               #把list中目录包含的文件/子目录置空,子目录没了哈

    os.path.walk(root, visit, arg)

    return arg.results

thefiles = listFiles('/home/gentoo/picture/wallpaper/', '*.jpg;*.gif;*.png', 1, 0)
while True:
    try:
        num = random.randint(0, len(thefiles))
        cmd = 'gconftool-2 --type string --set /desktop/gnome/background/picture_filename ' + thefiles[num-1]
        os.system(cmd)
        time.sleep(60*5);
    except:
        raise SystemExit

 代码被格式化的看起来有点乱,整个脚本是标准的网络制造,

把搜索来的遍历目录和如何用命令更改桌面两个功能组装一下就成了。

实现的功能就是第隔5分钟更换一次桌面。

遍历的部分可以设置要搜索的后缀名、是否遍历和是否返回目录,很是强大。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter