Last active
December 20, 2015 15:29
-
-
Save mozillazg/6154926 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
""" | |
根据日期批量创建文件夹. | |
""" | |
from __future__ import print_function | |
from __future__ import unicode_literals | |
import os | |
import calendar | |
from datetime import datetime | |
from datetime import timedelta | |
from argparse import ArgumentParser | |
__version__ = '0.2' | |
def parse_args(): | |
"""处理命令行参数.""" | |
today = datetime.today() | |
parser = ArgumentParser(description='Create multiple folders.') | |
parser.add_argument('-V', '--version', action='version', | |
version=__version__) | |
parser.add_argument('-y', '--year', metavar='NUMBER', type=int, | |
dest='year', default=today.year, | |
help='Year (default: {0}).'.format(today.year)) | |
parser.add_argument('-m', '--month', metavar='NUMBER', type=int, | |
dest='month', default=today.month, | |
help='Month (default: {0}).'.format(today.month)) | |
parser.add_argument('-f', '--format', metavar='FORMAT', | |
dest='format', default='%Y-%m-%d', | |
help='Folder name format (default: %%Y-%%m-%%d).' | |
) | |
return parser.parse_args() | |
def create(month=None, year=None, format='%Y-%m-%d'): | |
"""批量创建文件夹. | |
:param month: 月份(默认是当月) | |
:param year: 年份(默认是今年) | |
:param format: 格式化文件夹名称(Python 日期格式化参数) | |
:type month: int (1~12) | |
:type year: int (1900~9999) | |
:type format: str (%Y: 年,%m: 月,%d: 日) | |
""" | |
if not month: | |
month = datetime.today().month | |
if not year: | |
year = datetime.today().year | |
w, max_day = calendar.monthrange(year, month) | |
first_date = datetime.strptime('{year}-{month}-01'.format(**locals()), | |
'%Y-%m-%d').date() | |
for d in range(max_day): | |
date_ = first_date + timedelta(d) | |
folder = date_.strftime(format) | |
if not os.path.exists(folder): | |
os.mkdir(folder) | |
print('Created folder: {0} !'.format(folder)) | |
else: | |
print('Folder: {0} already exists!'.format(folder)) | |
def main(): | |
args = parse_args() | |
create(args.month, args.year, args.format) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment