with open('filepath') as rename:python
for line in rename:app
...函數
with 命令下 不用使用close()函數關閉文件,打開的文件在with 代碼塊下有效。優化
python OS 模塊:(import os)spa
os.getcwd() # return the current working dictionary操作系統
os.chdir(path) # change the current working dictionary to the specified pathcode
os.listdir(path='...') # Return a list containing the names of the files in the directoryorm
os.mkdir(pah,[mode]) # 建立單層目錄對象
os.makedirs(path,[mode]) # super mkdr() 遞歸建立多層目錄blog
remove(path) # 刪除文件
rmdir(path) # 刪除單層 空 目錄,非空目錄拋出異常
removedirs(path) # 遞歸刪除多層 空 目錄
rename(old, new) # 重命名, 可經過該命令進行文件賦值
system(command) # 運行系統命令
--------------------------------------------------------------------------------------------------------------------------
os.curdir #常量 ‘.’ 指代當前目錄
os.aprdir # 常量 ‘..’ 指代上級目錄
os.name #指代當前 操做系統
os.linesep #系統換行符
os.sep #系統 路徑分隔符
===============================================================================
os.path 模塊
basename(path) #去掉目錄路徑, 單獨返回文件名
dirname(path) #去掉文件名 返回路徑
join('path1', 'path2',...) #將輸入的字符牀 path一、path2 組成路徑返回
split(path) # 分割文件路徑 返回元組 不會判斷路徑是否存在
splittext(path) #分離文件名與擴展名 返回元組、
getsize(file) # 返回文件大小
getatime(file) # 返回最近訪問時間(time.localtime(float)獲得時間)
getctime(file) #返回文件建立時間
getmtime(file) # 返回文件修改時間
-----------------------------------------------------------------------------------------------------------------------------
exists(path) #判斷指定路徑是否存在
isabs(path) #判斷是否爲絕對路徑
isdir(path)
isfile(path)
islink(path)
ismount(path)
samefile(path1, path2) # 兩個路徑是否指向同一個文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pickle: 存取二進制文件
pickle.dump(data, file_object)
pickle.load()
經過OS 模塊及 os.path模塊下的方法 查看當前目錄的文件,並按照文件修改時間排序:代碼以下。
import os import time print(os.getcwd()) dirs_list = os.listdir() file_modify_time = [] for dir in dirs_list: #print(dir + ': '+ str(os.path.getsize(dir))) dict_time = {'name': dir, 'mtime': os.path.getmtime(dir)} # 將文件信息組成字典 file_modify_time.append(dict_time) # append 進入事先定義的列表中 #print(file_modify_time) def sorted_seed(file_modify_time): # 爲排序函數 sorted() 中的 key 參數定義 種子函數 return file_modify_time['mtime'] def sorted_file_with_mtime(file_modify_time): results = sorted(file_modify_time, key = sorted_seed) # 經過sorted() 函數 及其種子函數按 列表中字典的時間值 排序 return results results = sorted_file_with_mtime(file_modify_time) for result in results: year, mon, day, hour, mint, sec, wday, yday, isdst = time.localtime(result['mtime']) # time.localtimae()獲得的時間參數 解構 print('{0}\n{1:>}'.format(result['name'],str(year) + '.' + str(mon) + '.' + str(day) + '——' + str(hour) + ':' + str(mint) + ':' + str(sec))) #format函數打印結果
經過定義類的方式 實現。
# 代碼優化 import os import pickle # 定義一個文件信息查看 類 class File_check(): num = 0 # 記錄對象 個數 def __init__(self): self.__class__.num += 1 #經過 os 的 內置函數 獲取路徑內文件信息 def __get_file_list(self, path): if os.path.exists(path): file_message_list = [] file_name_list = os.listdir(path) for name in file_name_list: dict_time = {'name': name, 'mtime': os.path.getmtime(name)} file_message_list.append(dict_time) else: print("Wrong path, dosn't exist") file_message_list = None return file_message_list # 對文件進行排序 按照文件的修改時間 def __sorted_file(self, file_message_list): if file_message_list == None: sorted_file_list = None elif not file_message_list: print('Empty dir') sorted_file_list = [] else: # 經過 sorted 函數進行排序 , 爲 key 參數構建一個種子函數 sorted_file_message_list = sorted(file_message_list, key = self.__sorted_seed) return sorted_file_message_list # 種子函數 def __sorted_seed(self, file): return file['mtime'] # 結果顯示 def __show_results(self, sorted_file_message_list): for result in sorted_file_message_list: print(result) # 結果存入文件 def __results_write2_file(self, sorted_file_message_list): with open('test.log', mode='wb') as f: pickle.dump(sorted_file_message_list,f) # 入口程序 def run(self, path): file_list = self.__get_file_list(path) sorted_file_message_list = self.__sorted_file(file_list) self.__results_write2_file(sorted_file_message_list) self.__show_results(sorted_file_message_list) file = File_check() os.chdir('D:') file.run(os.getcwd())