在python中递归使用变量

时间:2014-08-25 10:26:59

标签: python

我可以使用变量设置我的zip补丁插入手动输入吗

运行正常的代码示例部分

if __name__ == '__main__':
zip_folder(r'Monday' ,
           r'Monday.zip')

但是我可以使用一个自己输入的变量,对于第二个例子,我得到一个"无效的语法"错误

 today = "Monday"
 today_zip = "Monday.zip"

 if __name__ == '__main__':
 zip_folder(r today,
            r today_zip)

 import zipfile
 import sys
 import os

def zip_folder(folder_path, output_path):
"""Zip the contents of an entire folder (with that folder included
in the archive). Empty subfolders will be included in the archive
as well.
"""
parent_folder = os.path.dirname(folder_path)
# Retrieve the paths of the folder contents.
contents = os.walk(folder_path)
try:
    zip_file = zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED)
    for root, folders, files in contents:
        # Include all subfolders, including empty ones.
        for folder_name in folders:
            absolute_path = os.path.join(root, folder_name)
            relative_path = absolute_path.replace(parent_folder + '\\',
                                                  '')
            print "Adding '%s' to archive." % absolute_path
            zip_file.write(absolute_path, relative_path)
        for file_name in files:
            absolute_path = os.path.join(root, file_name)
            relative_path = absolute_path.replace(parent_folder + '\\',
                                                  '')
            print "Adding '%s' to archive." % absolute_path
            zip_file.write(absolute_path, relative_path)
    print "'%s' created successfully." % output_path
except IOError, message:
    print message
    sys.exit(1)
except OSError, message:
    print message
    sys.exit(1)
except zipfile.BadZipfile, message:
    print message
    sys.exit(1)
finally:
    zip_file.close()


   if __name__ == '__main__':
   zip_folder(r'Monday',
           r'Monday.zip')

1 个答案:

答案 0 :(得分:1)

您无需在此处指定r

 if __name__ == '__main__':
    zip_folder( today, today_zip)

会正常工作。 ru等是python中字符串的限定符,在您的情况下这里不需要。