题目

项目要求:上千个文本文件,文件名包含美国风格的日期( MM-DD-YYYY),需要将它们改名为欧洲风格的日期( DD-MM-YYYY)

先写个创建一百个美国风格日期的文件

#! python
# 创建100个美国风格日期的文件 import os
import random for i in range(100):
mm = random.randint(1, 12)
dd = random.randint(1, 30)
yy = random.randint(2000, 2018)
date = '{:0>2d}-{:0>2d}-{}'.format(mm, dd, yy) b = os.getcwd() + '\\USdate\\'
if not os.path.exists(b):
os.makedirs(b)
creatname = b + date + '.txt'
print(creatname)
file = open(creatname, 'w')
file.write('None')
file.close() print('OK')

代码

#! python3
# renameDates.py - Renames filenames with American MM-DD-YYYY date format
# to European DD-MM-YYYY. import os
import shutil
import re # 创建一个识别美国日期的正则,mm-dd-yy
datePattern = re.compile(r"""^(.*?) # 前面的所有
((0|1)?\d)- # 月
((0|1|2|3)?\d)-# 日
((19|20)\d\d) # 年
(.*?)$ # 后面的所有
""", re.VERBOSE) for amerFilename in os.listdir('.\\USdate'):
mo = datePattern.search(amerFilename) # Get the different parts of the filename.
beforePart = mo.group(1)
monthPart = mo.group(2)
dayPart = mo.group(4)
yearPart = mo.group(6)
afterPart = mo.group(8) # 构成新文件
euroFilename = beforePart + dayPart + '-' + monthPart + '-' + yearPart + afterPart # 复制到新文件夹
absCopydir = os.path.abspath('.') + '\\USdate\\'
absWorkdir = os.path.abspath('.') + '\\EUdate\\'
if not os.path.exists(absWorkdir):
os.makedirs(absWorkdir)
shutil.copy(absCopydir + amerFilename, absWorkdir)
os.rename(absWorkdir + amerFilename, absWorkdir + euroFilename)

最新文章

  1. sql server 中隐藏掉无关数据库
  2. MySQL分区表的管理~1
  3. HIS-DELPHI-读取数据库配置
  4. TTL 生存时间介绍 (转)
  5. 生产环境下一定要开启mysqlbinlog
  6. Flume数据传输事务分析[转]
  7. 修改bigbluebutton白板上传中文乱码
  8. JDK神坑:JAVA中Calendar的月份Month少1
  9. 用jq 做了一个排序
  10. HDU ACM 2586 How far away ?LCA->并查集+Tarjan(离线)算法
  11. hdu 1159 Common Subsequence (dp乞讨LCS)
  12. Oracle推断领域包括中国
  13. 安装ruby compass失败
  14. vue项目实战总结
  15. fflush(stdin)与fflush(stdout)
  16. 元组tuple插入字符串的方式
  17. Mybatis框架基础支持层——反射工具箱之实体属性Property工具集(6)
  18. squid反向代理
  19. myisamchk命令修复表操作
  20. vs2010补丁

热门文章

  1. spring boot: 热部署spring-boot-devtools
  2. Model/ModelMap 和 ModelAndView 的区别使用
  3. Linux命令详解-help
  4. React中父子组件间的通信问题
  5. 非关联容器|hash|unordered_map/multimap,unordered_set/multiset
  6. 严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationT
  7. keras_基本网络层结构(2)_卷积层
  8. Linux运维学习笔记-文件权限知识总结
  9. LTIB for ubuntu12.04
  10. IOS中UITableViewCell使用详解