用python实现日志文件,并且按时间命名文件名方式
作者:边ing
这篇文章主要介绍了用python实现日志文件,并且按时间命名文件名方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
python实现日志文件,并且按时间命名文件名
话不多说,先上代码:
uuid_str = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime()) tmp_file_name ='%s.txt' % uuid_str with open(tmp_file_name,'a') as f: f.write("{}\n\n".format(str(time.strftime("%Y-%m-%d %H:%M:%S ",time.localtime())))) for i in AAA: f.write("AAA: {}\n\n".format(i)) f.write("土壤: {}\n\n".format(m))
下面开始分段讲解:
uuid_str = time.strftime("%Y-%m-%d %H-%M-%S",time.localtime()) tmp_file_name ='%s.txt' % uuid_str
首先按照 %Y-%m-%d %H-%M-%S 这种规格设置文件名的日期格式,注意这里 %H-%M-%S ,千万不能写成 %H:%M:%S 这种形式,因为我就犯过这种错误,本来想着“时分秒”按照 %H:%M:%S 这种形式设置会更好,但是要记住一点,文件命名里面不能出现冒号,否则会出错。
然后再在日期名后面添加.txt后缀,当然你也可以换成.log,这个都是随便的。
with open(tmp_file_name,'a') as f: f.write("{}\n\n".format(str(time.strftime("%Y-%m-%d %H:%M:%S ",time.localtime()))))
然后,将你所要记录的东西写到刚刚命名创建的文件里,首先打开那个文件,然后第一行记录时间,格式按照 %Y-%m-%d %H:%M:%S 这种形式,哈哈,可能有人会问,不是不能有冒号吗?
是的,但是只有在命名文件名时不能出现冒号,这里只是将当前时间记录在txt文件中,所以是可以的。
for i in AAA: f.write("AAA: {}\n\n".format(i)) f.write("土壤: {}\n\n".format(m))
最后这个其实就是根据需要而采用的不同的写入方式,
- 第一种是for循环,适用于有很多元素的
- 第二种就是单纯的f.write()写入,适用于写入单个元素
python按时间顺序批量重命名文件
下面这段Python脚本能我们把一个文件夹下的所有文件,按最后修改的时间顺序,批量加序号前缀进行重命名;
注释比较详尽,就不多费口舌了,上代码:
import os # 按修改时间排序后,批量重命名文件,并加序号前缀 def renameFilesSortedByTime(dirPath): mlist = [] # 获得文件名列表 files = os.listdir(dirPath) # 获得名称带时间戳的新文件名列表 for filename in files: # 获得文件的最后修改时间 createTime = os.path.getmtime(dirPath + filename) # 将最后修改时间戳作为文件名的前缀,得到新的文件名,加入列表 mlist.append(str(int(createTime)) + "-" + filename) # 重新给列表排序,这次所有文件按修改时间排序了 mlist = sorted(mlist) # 遍历修改时间戳为序号 for i in range(len(mlist)): # 截取获得原先的文件名 oldName = mlist[i][11:] # 将时间戳部分修改为序号,得到新的文件名 newName = mlist[i][11:] if (i + 1) < 10: newName = "00" + str(i + 1) + newName elif (i + 1) > 9 and (i + 1) < 100: newName = "0" + str(i + 1) + newName else: newName = str(i + 1) + newName # print(newName, oldName) # 重命名文件,按修改时间排序并加序号前缀 os.rename(dirPath + oldName, dirPath + newName) if __name__ == '__main__': renameFilesSortedByTime("D:/MyOutputs/视频/Go语言从入门到精通1-基础篇/") print("Job Done!")
加上图形用户界面以后可以成为一个很实用的小工具,Python的开发速度的确不是盖的;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。