一、枚舉的文法
from enum import Enum, unique
@unique
class Gender(Enum):
Male = 0
Female = 1
二、inspect Python中的反射
inspect子產品用于收集python對象的資訊,可以擷取類或函數的參數的資訊,源碼,解析堆棧,對對象進行類型檢查等等
三、占位符pass
Python pass是空語句,是為了保持程式結構的完整性。
pass 不做任何事情,一般用做占位語句。
四、屬性的文法
class Student(object):
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError("score must be an integer!")
if value < 0 or value > 100:
raise ValueError("score must between 0~100")
self._score = value
def birth(self):
return 200-self._score
if __name__ == '__main__':
s = Student()
s.score = 60
print(s.score)
print(s.birth())
五、字元串格式化
"Process child process %s (%s)..." % (name, os.getpid())
六、檔案和檔案夾操作
得到目前工作目錄,即目前Python腳本工作的目錄路徑: os.getcwd()
傳回指定目錄下的所有檔案和目錄名:os.listdir()
函數用來删除一個檔案:os.remove()
删除多個目錄:os.removedirs(r“c:\python”)
檢驗給出的路徑是否是一個檔案:os.path.isfile()
檢驗給出的路徑是否是一個目錄:os.path.isdir()
判斷是否是絕對路徑:os.path.isabs()
檢驗給出的路徑是否真地存:os.path.exists()
傳回一個路徑的目錄名和檔案名:os.path.split() eg os.path.split('/home/swaroop/byte/code/poem.txt') 結果:('/home/swaroop/byte/code', 'poem.txt')
分離擴充名:os.path.splitext()
擷取路徑名:os.path.dirname()
擷取檔案名:os.path.basename()
運作shell指令: os.system()
讀取和設定環境變量:os.getenv() 與os.putenv()
給出目前平台使用的行終止符:os.linesep Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
訓示你正在使用的平台:os.name 對于Windows,它是'nt',而對于Linux/Unix使用者,它是'posix'
重命名:os.rename(old, new)
建立多級目錄:os.makedirs(r“c:\python\test”)
建立單個目錄:os.mkdir(“test”)
擷取檔案屬性:os.stat(file)
修改檔案權限與時間戳:os.chmod(file)
終止目前程序:os.exit()
擷取檔案大小:os.path.getsize(filename)
檔案操作:
os.mknod("test.txt") 建立空檔案
fp = open("test.txt",w) 直接打開一個檔案,如果檔案不存在則建立檔案
關于open 模式:
w 以寫方式打開,
a 以追加模式打開 (從 EOF 開始, 必要時建立新檔案)
r+ 以讀寫模式打開
w+ 以讀寫模式打開 (參見 w )
a+ 以讀寫模式打開 (參見 a )
rb 以二進制讀模式打開
wb 以二進制寫模式打開 (參見 w )
ab 以二進制追加模式打開 (參見 a )
rb+ 以二進制讀寫模式打開 (參見 r+ )
wb+ 以二進制讀寫模式打開 (參見 w+ )
ab+ 以二進制讀寫模式打開 (參見 a+ )
fp.read([size]) #size為讀取的長度,以byte為機關
fp.readline([size]) #讀一行,如果定義了size,有可能傳回的隻是一行的一部分
fp.readlines([size]) #把檔案每一行作為一個list的一個成員,并傳回這個list。其實它的内部是通過循環調用readline()來實作的。如果提供size參數,size是表示讀取内容的總長,也就是說可能隻讀到檔案的一部分。
fp.write(str) #把str寫到檔案中,write()并不會在str後加上一個換行符
fp.writelines(seq) #把seq的内容全部寫到檔案中(多行一次性寫入)。這個函數也隻是忠實地寫入,不會在每行後面加上任何東西。
fp.close() #關閉檔案。python會在一個檔案不用後自動關閉檔案,不過這一功能沒有保證,最好還是養成自己關閉的習慣。 如果一個檔案在關閉後還對其進行操作會産生ValueError
fp.flush() #把緩沖區的内容寫入硬碟
fp.fileno() #傳回一個長整型的”檔案标簽“
fp.isatty() #檔案是否是一個終端裝置檔案(unix系統中的)
fp.tell() #傳回檔案操作标記的目前位置,以檔案的開頭為原點
fp.next() #傳回下一行,并将檔案操作标記位移到下一行。把一個file用于for … in file這樣的語句時,就是調用next()函數來實作周遊的。
fp.seek(offset[,whence]) #将檔案打操作标記移到offset的位置。這個offset一般是相對于檔案的開頭來計算的,一般為正數。但如果提供了whence參數就不一定了,whence可以為0表示從頭開始計算,1表示以目前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式打開,每次進行寫操作時,檔案操作标記會自動傳回到檔案末尾。
fp.truncate([size]) #把檔案裁成規定的大小,預設的是裁到目前檔案操作标記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些随機的内容加上去。
目錄操作:
os.mkdir("file") 建立目錄
複制檔案:
shutil.copyfile("oldfile","newfile") oldfile和newfile都隻能是檔案
shutil.copy("oldfile","newfile") oldfile隻能是檔案夾,newfile可以是檔案,也可以是目标目錄
複制檔案夾:
shutil.copytree("olddir","newdir") olddir和newdir都隻能是目錄,且newdir必須不存在
重命名檔案(目錄)
os.rename("oldname","newname") 檔案或目錄都是使用這條指令
移動檔案(目錄)
shutil.move("oldpos","newpos")
删除檔案
os.remove("file")
删除目錄
os.rmdir("dir")隻能删除空目錄
shutil.rmtree("dir") 空目錄、有内容的目錄都可以删
轉換目錄
os.chdir("path") 換路徑
七、時間的文法
1.先導入庫:import datetime
2.擷取目前日期和時間:now_time = datetime.datetime.now()
3.格式化成我們想要的日期:strftime()
比如:“2016-09-21”:datetime.datetime.now().strftime('%Y-%m-%d')
4.在目前時間增加1小時:add_hour=datetime.datetime.now()+datetime.timedelta(hours=1) #需要導入timedelta庫
格式“小時”:now_hour=add_hour.strftime('%H')
5.時間的三種存在方式:時間對象,時間字元串,時間戳。
(1)字元串轉datetime:
>>> string = '2014-01-08 11:59:58'
>>> time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
>>> print time1
2014-01-08 11:59:58
(2)datetime轉字元串:
>>> time1_str = datetime.datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')
>>> time1_str
'2014-01-08 11:59:58'
(3)時間戳轉時間對象:
>>>time1 = time.localtime()
>>>time1_str = datetime.datetime.fromtimestamp(time1)
八、PyCharm快捷鍵大全
PyCharm3.0預設快捷鍵(翻譯的)
PyCharm Default Keymap
1、編輯(Editing)
Ctrl + Space 基本的代碼完成(類、方法、屬性)
Ctrl + Alt + Space 快速導入任意類
Ctrl + Shift + Enter 語句完成
Ctrl + P 參數資訊(在方法中調用參數)
Ctrl + Q 快速檢視文檔
F1 外部文檔
Shift + F1 外部文檔,進入web文檔首頁
Ctrl + Shift + Z --> Redo 重做
Ctrl + 懸浮/單擊滑鼠左鍵 簡介/進入代碼定義
Ctrl + F1 顯示錯誤描述或警告資訊
Alt + Insert 自動生成代碼
Ctrl + O 重新方法
Ctrl + Alt + T 選中
Ctrl + / 行注釋/取消行注釋
Ctrl + Shift + / 塊注釋
Ctrl + W 選中增加的代碼塊
Ctrl + Shift + W 回到之前狀态
Ctrl + Shift + ]/[ 標明代碼塊結束、開始
Alt + Enter 快速修正
Ctrl + Alt + L 代碼格式化
Ctrl + Alt + O 優化導入
Ctrl + Alt + I 自動縮進
Tab / Shift + Tab 縮進、不縮進目前行
Ctrl+X/Shift+Delete 剪切目前行或標明的代碼塊到剪貼闆
Ctrl+C/Ctrl+Insert 複制目前行或標明的代碼塊到剪貼闆
Ctrl+V/Shift+Insert 從剪貼闆粘貼
Ctrl + Shift + V 從最近的緩沖區粘貼
Ctrl + D 複制標明的區域或行
Ctrl + Y 删除標明的行
Ctrl + Shift + J 添加智能線
Ctrl + Enter 智能線切割
Shift + Enter 另起一行
Ctrl + Shift + U 在標明的區域或代碼塊間切換
Ctrl + Delete 删除到字元結束
Ctrl + Backspace 删除到字元開始
Ctrl + Numpad+/- 展開/折疊代碼塊(目前位置的:函數,注釋等)
Ctrl + shift + Numpad+/- 展開/折疊所有代碼塊
Ctrl + F4 關閉運作的頁籤
2、查找/替換(Search/Replace)
F3 下一個
Shift + F3 前一個
Ctrl + R 替換
Ctrl + Shift + F 或者連續2次敲擊shift 全局查找{可以在整個項目中查找某個字元串什麼的,如查找某個函數名字元串看之前是怎麼使用這個函數的}
Ctrl + Shift + R 全局替換
3、運作(Running)
Alt + Shift + F10 運作模式配置
Alt + Shift + F9 調試模式配置
Shift + F10 運作
Shift + F9 調試
Ctrl + Shift + F10 運作編輯器配置
Ctrl + Alt + R 運作manage.py任務
4、調試(Debugging)
F8 跳過
F7 進入
Shift + F8 退出
Alt + F9 運作遊标
Alt + F8 驗證表達式
Ctrl + Alt + F8 快速驗證表達式
F9 恢複程式
Ctrl + F8 斷點開關
Ctrl + Shift + F8 檢視斷點
5、導航(Navigation)
Ctrl + N 跳轉到類
Ctrl + Shift + N 跳轉到符号
Alt + Right/Left 跳轉到下一個、前一個編輯的頁籤(代碼檔案)
Alt + Up/Down跳轉到上一個、下一個方法
F12 回到先前的工具視窗
Esc 從工具視窗回到編輯視窗
Shift + Esc 隐藏運作的、最近運作的視窗
Ctrl + Shift + F4 關閉主動運作的頁籤
Ctrl + G 檢視目前行号、字元号
Ctrl + E 目前檔案彈出,打開最近使用的檔案清單
Ctrl+Alt+Left/Right 後退、前進
Ctrl+Shift+Backspace 導航到最近編輯區域 {差不多就是傳回上次編輯的位置}
Alt + F1 查找目前檔案或辨別
Ctrl+B / Ctrl+Click 跳轉到聲明
Ctrl + Alt + B 跳轉到實作
Ctrl + Shift + I檢視快速定義
Ctrl + Shift + B跳轉到類型聲明
Ctrl + U跳轉到父方法、父類
Ctrl + ]/[跳轉到代碼塊結束、開始
Ctrl + F12彈出檔案結構
Ctrl + H類型層次結構
Ctrl + Shift + H方法層次結構
Ctrl + Alt + H調用層次結構
F2 / Shift + F2下一條、前一條高亮的錯誤
F4 / Ctrl + Enter編輯資源、檢視資源
Alt + Home顯示導覽列F11書簽開關
Ctrl + Shift + F11書簽助記開關
Ctrl + #[0-9]跳轉到辨別的書簽
Shift + F11顯示書簽
6、搜尋相關(Usage Search)
Alt + F7/Ctrl + F7檔案中查詢用法
Ctrl + Shift + F7檔案中用法高亮顯示
Ctrl + Alt + F7顯示用法
7、重構(Refactoring)
F5複制F6剪切
Alt + Delete安全删除
Shift + F6重命名
Ctrl + F6更改簽名
Ctrl + Alt + N内聯
Ctrl + Alt + M提取方法
Ctrl + Alt + V提取屬性
Ctrl + Alt + F提取字段
Ctrl + Alt + C提取常量
Ctrl + Alt + P提取參數
8、控制VCS/Local History
Ctrl + K送出項目
Ctrl + T更新項目
Alt + Shift + C檢視最近的變化
Alt + BackQuote(’)VCS快速彈出
9、模版(Live Templates)
Ctrl + Alt + J目前行使用模版
Ctrl +J插入模版
10、基本(General)
Alt + #[0-9]打開相應的工具視窗
Ctrl + Alt + Y同步
Ctrl + Shift + F12最大化編輯開關
Alt + Shift + F添加到最喜歡
Alt + Shift + I根據配置檢查目前檔案
Ctrl + BackQuote(’)快速切換目前計劃
Ctrl + Alt + S 打開設定頁
Ctrl + Shift + A查找編輯器裡所有的動作
Ctrl + Tab在視窗間進行切換
九、