用python實(shí)現(xiàn)日志文件,并且按時間命名文件名方式
python實(shí)現(xiàn)日志文件,并且按時間命名文件名
話不多說,先上代碼:
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 這種規(guī)格設(shè)置文件名的日期格式,注意這里 %H-%M-%S ,千萬不能寫成 %H:%M:%S 這種形式,因?yàn)槲揖头高^這種錯誤,本來想著“時分秒”按照 %H:%M:%S 這種形式設(shè)置會更好,但是要記住一點(diǎn),文件命名里面不能出現(xiàn)冒號,否則會出錯。
然后再在日期名后面添加.txt后綴,當(dāng)然你也可以換成.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()))))
然后,將你所要記錄的東西寫到剛剛命名創(chuàng)建的文件里,首先打開那個文件,然后第一行記錄時間,格式按照 %Y-%m-%d %H:%M:%S 這種形式,哈哈,可能有人會問,不是不能有冒號嗎?
是的,但是只有在命名文件名時不能出現(xiàn)冒號,這里只是將當(dāng)前時間記錄在txt文件中,所以是可以的。
for i in AAA: f.write("AAA: {}\n\n".format(i)) f.write("土壤: {}\n\n".format(m))
最后這個其實(shí)就是根據(jù)需要而采用的不同的寫入方式,
- 第一種是for循環(huán),適用于有很多元素的
- 第二種就是單純的f.write()寫入,適用于寫入單個元素
python按時間順序批量重命名文件
下面這段Python腳本能我們把一個文件夾下的所有文件,按最后修改的時間順序,批量加序號前綴進(jìn)行重命名;
注釋比較詳盡,就不多費(fèi)口舌了,上代碼:
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-基礎(chǔ)篇/") ? ? print("Job Done!")
加上圖形用戶界面以后可以成為一個很實(shí)用的小工具,Python的開發(fā)速度的確不是蓋的;
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)
這篇文章主要介紹了Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn),需要的朋友可以參考下2014-11-11python進(jìn)階教程之循環(huán)相關(guān)函數(shù)range、enumerate、zip
這篇文章主要介紹了python進(jìn)階教程之循環(huán)相關(guān)函數(shù)range、enumerate、zip,在使用循環(huán)程序經(jīng)常要配合這些函數(shù)來完成循環(huán),需要的朋友可以參考下2014-08-08python多進(jìn)程實(shí)現(xiàn)文件下載傳輸功能
這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程實(shí)現(xiàn)文件下載傳輸功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07windows系統(tǒng)上通過whl文件安裝triton模塊的簡單步驟
這篇文章主要介紹了在Windows系統(tǒng)中通過.whl文件安裝Triton的步驟,包括確認(rèn)系統(tǒng)環(huán)境、下載合適的.whl文件、使用pip安裝、驗(yàn)證安裝、使用Triton以及解決潛在問題,需要的朋友可以參考下2025-01-01Python中動態(tài)檢測編碼chardet的使用教程
最近利用python抓取一些網(wǎng)上的數(shù)據(jù),遇到了編碼的問題。非常頭痛,幸運(yùn)的是找到了解決的方法,下面這篇文章主要跟大家介紹了關(guān)于Python中動態(tài)檢測編碼chardet的使用方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07