20190131-檔案操作命題練習

何發奮發表於2019-02-01

一.命題練習

1. 一個目錄下只有檔案(自己構造),拷貝幾個檔案(手工完成)

2.獲取所有檔案,如果檔案的建立時間是今天,那麼就在檔案裡面寫上檔案的路徑、檔名和副檔名

3.如果不是今天建立的請刪除

4.計算一下這個程式的執行耗時

演算法:

首先目錄下的檔案進行如下操作,如果不是檔案,則跳過:

  a. 獲取所有檔案,使用os.path.listdir()函式;

  b. 獲取檔案建立時間使用os.path.getctime()函式;

  c. 基於條件b符合,使用追加寫開啟檔案寫入檔案路徑os.getcwd()獲取,檔名os.splitext()[0]獲取,副檔名os.splitext()[1]獲取

  d. 如果不是今天建立的使用os.remove()刪除檔案

  f. 計算耗時使用time函式來計算

def proposition(source_dir):
    import os
    import os.path
    import time
    start = time.time()
    #記錄開始時間
    local_time = time.localtime(start)
    #time.localtime()輸出結果可通過切片取值
    os.chdir(source_dir)
    #切換目錄到source_dir目錄下
    file_list=os.listdir()
    #獲取所在目錄下的檔案列表
    for file in file_list:
       file_create_time=time.localtime(os.path.getctime(file))
       #遍歷檔案,獲取檔案建立時間,將檔案建立時間轉換為localtime()
       if file_create_time[0] == local_time[0] and file_create_time[1] == local_time[1] and file_create_time[2] == local_time[2] and os.path.isfile(file):
           #file_create_time[0]代表年份
           #file_create_time[1]代表月份
           #file_create_time[2]代表日
           #如果都匹配,則進行寫檔案操作
           with open(file,`a`) as fp:
               fp.write(`
`+os.getcwd())
               fp.write(`
`+os.path.splitext(file)[0])
               fp.write(`
`+os.path.splitext(file)[1])
       elif os.path.isfile(file):
       #否則刪除檔案,tips:os.remove()函式只能刪除檔案,不能刪除資料夾
            os.remove(file)
    end = time.time()
    return end - start
print(proposition(r`D:Python`))

Tips:將source_dir替換為自己的路徑可執行

 

相關文章