Python编程快速上手 让繁琐工作自动化 第9章 9.4 项目:将带有美国风格日期的文件改名为欧洲风格日期

本项目涉及使用Python编程将文件名中美国风格的日期(MM-DD-YYYY)转换为欧洲风格(DD-MM-YYYY)。代码不仅处理连接符为'-'的情况,还包括'.'和无连接符的情况,并移除了年份与文件扩展名间的字符,避免了因不同连接符或额外字符导致的同名文件问题。

9.4 项目:将带有美国风格日期的文件改名为欧洲风格日期

书中作者给出了代码,我的代码做了一些改动。作者代码只考虑日期间的连接符是"-“的情况,实际上日期之间的连接符,也有习惯写成”."或者不写的,我的代码把这两种情况都考虑了进去。另外我的代码把改名之前的文件名中年份和文件扩展名之间的字符都去掉了。
请注意:如果改名之前的某些文件名只是连接符(不写连接符也算连接符的一种)的不同和年份和文件扩展名之间的字符的不同,那么改名后,会出现同名文件被覆盖的情况。
这些出现改名后同名文件的情况,改动下代码即可解决。有兴趣的可以试一下。
下面是我的代码:

import re,os, shutil
reg=re.compile(r'(.*?)((0|1)?\d)(\.|-)?((0|1|2|3)?\d)(-|\.)?(\d\d\d\d)(.*)(\.[^.]+)')
for a in os.listdir('9'):
	print(a)	
	if reg.search(a)==None:
		continue
	fst=reg.search(a).group(1)
	m=reg.search(a).group(2)
	d=reg.search(a).group(5)
	y=reg.search(a).group(8)
	lst=reg.search(a).group(10)
	eurodate=fst+d+'-'+m+'-'+y+lst
	absp=os.path.abspath('.')
	usfile=os.path.join(absp,'9',a)                    #9是当前工作目录下的子文件夹名称
	eurofile=os.path.join(absp,'ch',eurodate)          #ch是当前工作目录下的子文件夹名称
	shutil.move(usfile,eurofile)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值