我是蟒蛇新手,我仍在发现它的奇迹.
我写了一个重命名文件的脚本:从Edison_03-08-2010-05-02-00_PM.7z到Edison_08-03-2010-05-02-00_PM.7z
" 03-08 -2010"更改为" 08-03 -2010"
该脚本是:
import os, os.path
location = "D:/codebase/_Backups"
files = os.listdir(location)
for oldfilename in files:
parts = oldfilename.split("_")
dateparts = parts[1].split("-")
newfilename = parts[0] + "_" + dateparts[1] + "-" + dateparts[0] + "-" + dateparts[2] + "-" + parts[2] + "_" + parts[3]
print oldfilename + " : " + newfilename
os.rename(os.path.join(location, oldfilename), os.path.join(location, newfilename))
Run Code Online (Sandbox Code Playgroud)
这样做会有更好/更优雅的方式吗?
datetime的strptime(解析时间字符串)和strftime(格式化时间字符串)将为您完成大部分繁重工作:
import datetime
_IN_FORMAT = 'Edison_%d-%m-%Y-%I-%M-%S_%p.7z'
_OUT_FORMAT = 'Edison_%m-%d-%Y-%I-%M-%S_%p.7z'
oldfilename = 'Edison_03-08-2010-05-02-00_PM.7z'
# Parse to datetime.
dt = datetime.datetime.strptime(oldfilename, _IN_FORMAT)
# Format to new format.
newfilename = dt.strftime(_OUT_FORMAT)
Run Code Online (Sandbox Code Playgroud)
>>> print newfilename
Edison_08-03-2010-05-02-00_PM.7z
Run Code Online (Sandbox Code Playgroud)
编辑:最初我使用%H(小时,24小时制),我应该使用%I(小时,12小时制)因为OP使用了AM/PM.这就是为什么我的示例输出错误地包含AM而不是PM.这一切现在都得到纠正.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |