Pyhton项目实践:将带有美国风格日期的文件改名为欧洲风格日期
2024-09-26 10:16:20
题目
项目要求:上千个文本文件,文件名包含美国风格的日期( 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)
最新文章
- sql server 中隐藏掉无关数据库
- MySQL分区表的管理~1
- HIS-DELPHI-读取数据库配置
- TTL 生存时间介绍 (转)
- 生产环境下一定要开启mysqlbinlog
- Flume数据传输事务分析[转]
- 修改bigbluebutton白板上传中文乱码
- JDK神坑:JAVA中Calendar的月份Month少1
- 用jq 做了一个排序
- HDU ACM 2586 How far away ?LCA-&;gt;并查集+Tarjan(离线)算法
- hdu 1159 Common Subsequence (dp乞讨LCS)
- Oracle推断领域包括中国
- 安装ruby compass失败
- vue项目实战总结
- fflush(stdin)与fflush(stdout)
- 元组tuple插入字符串的方式
- Mybatis框架基础支持层——反射工具箱之实体属性Property工具集(6)
- squid反向代理
- myisamchk命令修复表操作
- vs2010补丁
热门文章
- spring boot: 热部署spring-boot-devtools
- Model/ModelMap 和 ModelAndView 的区别使用
- Linux命令详解-help
- React中父子组件间的通信问题
- 非关联容器|hash|unordered_map/multimap,unordered_set/multiset
- 严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationT
- keras_基本网络层结构(2)_卷积层
- Linux运维学习笔记-文件权限知识总结
- LTIB for ubuntu12.04
- IOS中UITableViewCell使用详解