在python函数中使用可选参数

时间:2015-10-21 08:44:55

标签: python function

我有这个功能:

def get_previous_backups(backup_dir, extension):
    """Returns a list of backup files matching the date format and file extension"""
    return [os.path.basename(x) for x in
            glob.glob(backup_dir + DIR_PATH + host + '.[0-9][0-9][0-9][0-9]' +
                '-[0-9][0-9]' + '-[0-9][0-9]' + '.' + extension)]

此函数在给定目录中搜​​索与给定模式匹配的文件。稍后,结果将用于删除最旧的文件。 mx01.2015-10-15.tar.bz2 等文件将与过滤器匹配。所以这个功能就像一个魅力,但这是我的问题。这个函数是我写的备份脚本的一部分。它进行增量备份和完全备份。完整备份的名称略有不同。在tar文件的日期前面是 _FULL ,以明确该文件包含系统的完整备份。这些文件也应该删除。我试图为

这个函数使用一个可选参数

def get_previous_backups(backup_dir, extension, full=None):

并在串联中使用它,如:

'-[0-9][0-9]' + '-[0-9][0-9]' + full + '.' + extension)]

或格式

'-[0-9][0-9]' + '-[0-9][0-9]' + {} + '.' + extension)].format(full)

但是这不起作用,因为你不能用字符串连接dicts或nontype对象。 所以现在我的问题是:

是否有可能在这一功能中实现这一点,或者我是否只需要使用第二个功能进行完整备份?

1 个答案:

答案 0 :(得分:1)

而不是None使用"",所以你可以连接:

def get_previous_backups(backup_dir, extension, full=""):