今天打卡,出了个bug:
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/python.py", line 18, in <module>
dt = time.strftime("%Y{y}%M{m}%D{d} %H{h}:%MI{mi}:%S{s}".format(y="年",m="月",d="天",h="小时",mi="分钟",s="秒"))
UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error
源代码:
import os
from shutil import copy
from shutil import move
import time
path="文件夹"
for filepath,folders,files in os.walk(path):
# print(files,filepath,)
for file in files:
create_time = os.path.getmtime(os.path.join(filepath, file))
print(create_time)
# 时间戳 2018 1 2 3 4 5 6...
# print(create_time)
# 格式化 显示2018-03-21 22:00
realtime = time.localtime(create_time)
dt = time.strftime("%Y{y}%M{m}%D{d} %H{h}:%MI{mi}:%S{s}".format(y="年",m="月",d="天",h="小时",mi="分钟",s="秒"))
print(dt)
根据错误可以看出,没有执行成功的原因是"%Y年%m月%d日 %H时%M分%S秒"中包含了中文,中文没有转化为unicode编码失败的。
先转为uncode编码执行,执行完后转为utf-8显示
dt = time.strftime("%Y{y}%M{m}%D{d} %H{h}:%MI{mi}:%S{s}".encode('unicode_escape').decode('utf8').format(
y="年", m="月", d="天", h="小时", mi="分钟", s="秒"))
我把代码改成了你说的这样:
dt = time.strftime("%Y{y}%M{m}%D{d} %H{h}:%MI{mi}:%S{s}".encode('unicode_escape').decode('utf8').format(y="年", m="月", d="天", h="小时", mi="分钟", s="秒"))
可是还是老问题:
UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error
还是有问题