免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2477 | 回复: 5
打印 上一主题 下一主题

哪位高手能帮我翻译一下这些代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-29 03:40 |只看该作者 |倒序浏览
import sys,os, shutil, filecmp

MAXVERSIONS=100

def backup_files(tree_top, bakdir_name='bak'):

    for dir, subdirs, files in os.walk(tree_top):
        backup_dir = os.path.join(dir, bakdir_name)
        if not os.path.exists(backup_dir):
            os.makedirs(backup_dir)
        # To avoid recursing into sub-directories
        subdirs[:] = [d for d in subdirs if d != bakdir_name]
        for f in files:
            filepath = os.path.join(dir, f)
            destpath = os.path.join(backup_dir, f)
            # Check existence of previous versions
            for index in xrange(MAXVERSIONS):
                backup = '%s.%2.2d' % (destpath, index)
                abspath = os.path.abspath(filepath)
               
                if index > 0:
                    # No need to backup if file and last version
                    # are identical
                    old_backup = '%s.%2.2d' % (destpath, index-1)
                    if not os.path.exists(old_backup): break
                    abspath = os.path.abspath(old_backup)
                    
                    try:
                        if os.path.isfile(abspath) and filecmp.cmp(abspath, filepath, shallow=False):
                            continue
                    except OSError:
                        pass
               
                try:
                    if not os.path.exists(backup):
                        print 'Copying %s to %s...' % (filepath, backup)
                        shutil.copy(filepath, backup)
                except (OSError, IOError), e:
                    pass

if __name__=="__main__":
    # run backup on specified directory
    try:
        tree_top = sys.argv[1]
    except IndexError:
        tree_top = '.'
    backup_files(tree_top)

哪位高手能帮我逐行翻译一下上面的代码.小弟在这先谢了.还有我经常看见PYTHON 里面 有些代码写了"wb"和"rb"
这两个分别是什么意思啊./比如 ftp.retrbinary('RETR '+filename, open(filename,'wb').write)                                 ftp.storbinary('STOR '+filename, open(filename,'rb'))

[ 本帖最后由 tldboy 于 2006-7-29 03:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-01 11:26 |只看该作者
晕呵呵,看来lz可能没接触过C。rb为读文件标识,wb为写文件标识,都是对二进制文件操作

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亚冠之广州恒大
日期:2015-07-22 17:20:15
3 [报告]
发表于 2006-08-03 14:03 |只看该作者
在linux下 加与不加b 是一样的 在win下就不同了
3751 该用户已被删除
4 [报告]
发表于 2006-08-04 16:42 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2006-08-07 16:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2006-08-07 23:14 |只看该作者
大体功能是把sys.argv[1]指定的目录备份到bak目录里面去,如果文件跟前一个备份不一样,执行拷贝。

读读代码之间的注释会很有帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP