用python實(shí)現(xiàn)日志文件,并且按時(shí)間命名文件名方式
python實(shí)現(xiàn)日志文件,并且按時(shí)間命名文件名
話不多說(shuō),先上代碼:
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))下面開(kāi)始分段講解:
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 這種規(guī)格設(shè)置文件名的日期格式,注意這里 %H-%M-%S ,千萬(wàn)不能寫(xiě)成 %H:%M:%S 這種形式,因?yàn)槲揖头高^(guò)這種錯(cuò)誤,本來(lái)想著“時(shí)分秒”按照 %H:%M:%S 這種形式設(shè)置會(huì)更好,但是要記住一點(diǎn),文件命名里面不能出現(xiàn)冒號(hào),否則會(huì)出錯(cuò)。
然后再在日期名后面添加.txt后綴,當(dāng)然你也可以換成.log,這個(gè)都是隨便的。
with open(tmp_file_name,'a') as f:
f.write("{}\n\n".format(str(time.strftime("%Y-%m-%d %H:%M:%S ",time.localtime())))) 然后,將你所要記錄的東西寫(xiě)到剛剛命名創(chuàng)建的文件里,首先打開(kāi)那個(gè)文件,然后第一行記錄時(shí)間,格式按照 %Y-%m-%d %H:%M:%S 這種形式,哈哈,可能有人會(huì)問(wèn),不是不能有冒號(hào)嗎?
是的,但是只有在命名文件名時(shí)不能出現(xiàn)冒號(hào),這里只是將當(dāng)前時(shí)間記錄在txt文件中,所以是可以的。
for i in AAA:
f.write("AAA: {}\n\n".format(i))
f.write("土壤: {}\n\n".format(m))最后這個(gè)其實(shí)就是根據(jù)需要而采用的不同的寫(xiě)入方式,
- 第一種是for循環(huán),適用于有很多元素的
- 第二種就是單純的f.write()寫(xiě)入,適用于寫(xiě)入單個(gè)元素
python按時(shí)間順序批量重命名文件
下面這段Python腳本能我們把一個(gè)文件夾下的所有文件,按最后修改的時(shí)間順序,批量加序號(hào)前綴進(jìn)行重命名;
注釋比較詳盡,就不多費(fèi)口舌了,上代碼:
import os
# 按修改時(shí)間排序后,批量重命名文件,并加序號(hào)前綴
def renameFilesSortedByTime(dirPath):
? ? mlist = []
? ? # 獲得文件名列表
? ? files = os.listdir(dirPath)
? ? # 獲得名稱(chēng)帶時(shí)間戳的新文件名列表
? ? for filename in files:
? ? ? ? # 獲得文件的最后修改時(shí)間
? ? ? ? createTime = os.path.getmtime(dirPath + filename)
? ? ? ? # 將最后修改時(shí)間戳作為文件名的前綴,得到新的文件名,加入列表
? ? ? ? mlist.append(str(int(createTime)) + "-" + filename)
? ? # 重新給列表排序,這次所有文件按修改時(shí)間排序了
? ? mlist = sorted(mlist)
? ? # 遍歷修改時(shí)間戳為序號(hào)
? ? for i in range(len(mlist)):
? ? ? ? # 截取獲得原先的文件名
? ? ? ? oldName = mlist[i][11:]
? ? ? ? # 將時(shí)間戳部分修改為序號(hào),得到新的文件名
? ? ? ? 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)
? ? ? ? # 重命名文件,按修改時(shí)間排序并加序號(hào)前綴
? ? ? ? os.rename(dirPath + oldName, dirPath + newName)
if __name__ == '__main__':
? ? renameFilesSortedByTime("D:/MyOutputs/視頻/Go語(yǔ)言從入門(mén)到精通1-基礎(chǔ)篇/")
? ? print("Job Done!")加上圖形用戶(hù)界面以后可以成為一個(gè)很實(shí)用的小工具,Python的開(kāi)發(fā)速度的確不是蓋的;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch實(shí)現(xiàn)Fashion-mnist分類(lèi)任務(wù)全過(guò)程
這篇文章主要介紹了Pytorch實(shí)現(xiàn)Fashion-mnist分類(lèi)任務(wù)全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
python基本算法之實(shí)現(xiàn)歸并排序(Merge sort)
這篇文章主要給大家介紹了關(guān)于python基本算法之實(shí)現(xiàn)歸并排序(Merge sort)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
python 兩個(gè)一樣的字符串用==結(jié)果為false問(wèn)題的解決
這篇文章主要介紹了python 兩個(gè)一樣的字符串用==結(jié)果為false問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
運(yùn)行django項(xiàng)目指定IP和端口的方法
今天小編就為大家分享一篇運(yùn)行django項(xiàng)目指定IP和端口的方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python中import導(dǎo)入上一級(jí)目錄模塊及循環(huán)import問(wèn)題的解決
Python中的import語(yǔ)句導(dǎo)入模塊相信大家再熟悉不過(guò)了,這里我們會(huì)來(lái)講解Python中import導(dǎo)入上一級(jí)目錄模塊及循環(huán)import問(wèn)題的解決,需要的朋友可以參考下2016-06-06
Python3實(shí)現(xiàn)的判斷環(huán)形鏈表算法示例
這篇文章主要介紹了Python3實(shí)現(xiàn)的判斷環(huán)形鏈表算法,涉及Python針對(duì)環(huán)形鏈表的遍歷、判斷相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
Django數(shù)據(jù)庫(kù)如何在原有表中添加新字段
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)如何在原有表中添加新字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

