標籤:

Day8,os模塊,時間戳

一、os模塊

  1. 指定相對的目錄

file = open(test.txt, r, encoding=utf-8, errors=ignore)

2. 目錄的操作

# 獲取當前的目錄, . 表示當前目錄; .. 表示上一級目錄print(os.curdir)# 獲取當前工作目錄,參數可為相對路徑或者絕對路徑path = os.getcwd()print(path)# 獲取當前目錄下的所有文件的文件名(包括目錄)fileNames = os.listdir() # 空參數表示獲取當前目錄下的所有文件名(包括目錄)fileNames = os.listdir(rd:codes) # 可以傳入絕對路徑print(fileNames, type(fileNames))

3. 創建目錄

在當前目錄下創建一個目錄,如果該文件已經存在,會報異常

os.mkdir(yyy) # 在當前目錄下創建一個yyy的目錄os.mkdir(rd:codesday01) # 在絕對路徑下創建一個目錄

4. 修好目錄名或文件名

# 參數1表示修改前的文件或目錄名字,參數2表示修改後的名字os.rename(參數1, 參數2)# 修改目錄名"新聞" 為newsos.rename(新聞, news)# 傳遞絕對路徑,兩個參數的路徑必須一致os.rename(rd:codesyyy.txt",r"d:codesxxx.txt)#傳遞絕對路徑,在同個盤符下可以遞歸創建目錄os.renames(rd:codesyyy.txt",r"d:codesaaabbxxx.txt)

5. 刪除目錄和文件

# 刪除目錄,參數可為相對路徑或者絕對路徑os.rmdir(d:/aa)# 刪除文件,參數可為相對路徑或者絕對路徑os.remove(test.txt)

6. 獲取文件的屬性

os.stat(test.txt) # 獲取文件的所有屬性,返回os.stat_result 類的實例。

通過調用屬性值的方式可以獲取相應的屬性值:

7. 獲取文件的絕對路徑

os.path.abspath(test.txt) # 只限於當前目錄下的文件,以拼接的方式實現,不考慮文件是否存在

8. 路徑的拼接

1)字元串拼接:

path = rd:aaafileName = r upian.pngfilePath = path + fileName

2)函數拼接

absPath = os.path.join(os.getcwd(), hahaha.txt)file = open(absPath, w)file.close()

8. 分割路徑

路徑會分割成元組的形式: (目錄路徑,文件名)

path1 = rd:1list.pypath2 = r01list.pyprint(os.path.split(path1)) # (d:\, 01list.py)print(os.path.splitext(path1)) # (d:\01list, .py)# 分割文件名與該文件名的格式print(os.path.splitext(path2)) # (01list, .py)

9. 判斷是否是目錄

path1 = r"d:codesday01.py"path2 = r"d:codes"isDir1 = os.path.isdir(path1)isDir2 = os.path.isdir(path2)print(isDir1, isDir2) # False , True

10. 判斷是否是文件

path1 = r"d:codesday01.py"path2 = r"d:codes"isDir1 = os.path.isfile(path1)isDir2 = os.path.isfile(path2)print(isDir1, isDir2) # True , False

11. 判斷該目錄或文件是否存在

os.path.exists(path) # 存在返回True,不存在返回False

12. 獲取文件的路徑的目錄

print(os.path.dirname(path1)) # 返迴文件的目錄print(os.path.basename(path1)) # 返迴文件名

13. shell 命令

# os.system的指令,參數為shell命令,只能在當前目錄操作。若想切換到其他目錄下操#作,必須運用os.chdir(path)來先切換目錄os.system(cd..) # 返回上一目錄

二、時間戳

1. 定義:

1) UTC(格林威治天文時間), 世界統一時間

2) DST: 夏令時, 為了節約能源而人為規定的時間

2. 表現形式:

1) 時間戳:以整型或者浮點型來表示一個時間間隔,以1970年1月1日0點0分0秒為參考時間;

2)時間元組: 一種python的數據結構,有九個整型內容:年: tm_year, 月: tm_month, 日: tm_day時: tm_hour, 分: tm_min, 秒: tm_sec, 一個星期中的第幾天, 一年中的第幾天, 是不是夏令時:tm_isdst 0 表示是,1 表示不是, -1表示自己處理;

3) 字元串形式:2018/03/21, 2018-03-21, 10:15:54, 20180321

3. 獲取當前時間戳

time1 = time.time()print(time1)1521635427.2268448

4. 時間戳轉換為時間元組

gmtime(): 獲取世界標準時間,如果沒有參數,表示將當前的世界標準世界轉換成時間元組

tupleTime1 = time.gmtime()print(tupleTime1)time.struct_time(tm_year=2018, tm_mon=3, tm_mday=21, tm_hour=12, tm_min=32, tm_sec=16, tm_wday=2, tm_yday=80, tm_isdst=0)

localtime():獲取本地時間(UTC+8)

tupleTime1 = time.localtime() # 如果沒有參數,表示將本地時間轉換成時間元組print(tupleTime1)time.struct_time(tm_year=2018, tm_mon=3, tm_mday=21, tm_hour=20, tm_min=34, tm_sec=0, tm_wday=2, tm_yday=80, tm_isdst=0)

5. 時間元組轉換成時間戳

time1 = time.mktime(time.localtime()) # 不能為空參,會自動捨棄時間戳小數部分print(time1)1521635798.0

6. 將時間元組轉換成時間字元串

import timestrTime1 = time.strftime(%Y-%m-%d %H:%M:%S, time.localtime()) # 參數1:時間格式; 參數2: 時間元組print(strTime1)# 中文格式strTime2 = time.strftime(%Y{y}%m{m}%d{d}, time.localtime())print(strTime2.format(y=, m=, d=))# 簡寫方式strTime3 = time.strftime(%x %x, time.localtime())print(strTime3)2018-03-21 20:47:062018032103/21/18 03/21/18

7. 將時間字元串轉換成時間元組

tupleTime1 = time.strptime(2017-10-18 11:38:05, %Y-%m-%d %H:%M:%S) # 參數1: 時間字元串; 參數2: 時間格式字元串,必須與時間字元串格式對應print(tupleTime1)time.struct_time(tm_year=2017, tm_mon=10, tm_mday=18, tm_hour=11, tm_min=38, tm_sec=5, tm_wday=2, tm_yday=291, tm_isdst=-1)

8. 將時間戳轉換成字元串

strTime1 = time.ctime(time.time())print(strTime1)Wed Mar 21 20:51:22 2018

9. 讓程序睡眠

print(begin to sleep)time.sleep(2) # 參數是休眠的時間,單位是秒print(wake up)

10. 記錄該程序cpu的執行時間

# 在windows系統中,第一次執行clock表示的是記錄當前開始的時間,下次執行clock表示的是與上次執行clock的執行時間間隔clock1 = time.clock()print(clock1)1.811556462138923e-06

11. 時間字元串支持的格式符號:(區分大小寫)

%a 本地星期名稱的簡寫(如星期四為Thu)

%A 本地星期名稱的全稱(如星期四為Thursday)

%b 本地月份名稱的簡寫(如八月份為agu)

%B 本地月份名稱的全稱(如八月份為august)

%c 本地相應的日期和時間的字元串表示(如:15/08/27 10:20:06)

%d 一個月中的第幾天(01 - 31)

%f 微妙(範圍0.999999)

%H 一天中的第幾個小時(24小時制,00 - 23)

%I 第幾個小時(12小時制,0 - 11)

%j 一年中的第幾天(001 - 366)

%m 月份(01 - 12)

%M 分鐘數(00 - 59)

%p 本地am或者pm的相應符

%S 秒(00 - 61)

%U 一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天之 前的所有天數都放在第0周。

%w 一個星期中的第幾天(0 - 6,0是星期天)

%W 和%U基本相同,不同的是%W以星期一為一個星期的開始。

%x 本地相應日期字元串(如15/08/01)

%X 本地相應時間字元串(如08:08:10)

%y 去掉世紀的年份(00 - 99)兩個數字表示的年份

%Y 完整的年份(4個數字表示年份)

%z 與UTC時間的間隔(如果是本地時間,返回空字元串)

%Z 時區的名字(如果是本地時間,返回空字元串)

%% 『%』字元

三、作業

練習一:

1. 編寫腳本,實現文件的重命名功能

用 sys.argv 接收命令行的參數(2個: 原名,新名)]

python rename.py aa.txt bb.txt

python rename.py d:/fns.txt d:/fns_day08.txt

python rename.py ../day02_file/aa.py ../day02_file/bb.py

2. 編寫腳本,實現文件的徹底刪除功能

用 sys.argv 接收命令行的一個參數(文件名)

3. 實現文件目錄的創建

sys.argv 接收目錄的名稱

練習二:

1. 獲取指定目錄下文件列表,將所有.txt文件全部刪除

要求:1.如果目錄不存在,則提示用戶輸入錯誤

2. 判斷文件的擴展名是否為.txt

3. 文件刪除後,輸出提示信息

2. 獲取指定目錄下文件列表,顯示文件名和文件大小

文件大小的單位可用: bytes、k、m

推薦閱讀:

不懂編程,如何才能學好python呢?
Python3 解釋器
python模擬登陸知乎(最新版)
轉載「我是賣包子的,想學AI編程留在北京」
例舉 Python 的一些坑?

TAG:Python |