Skip to content

Instantly share code, notes, and snippets.

@mozillazg
Last active December 20, 2015 15:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mozillazg/6154926 to your computer and use it in GitHub Desktop.
Save mozillazg/6154926 to your computer and use it in GitHub Desktop.
#!/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