1.Python標識符
在 Python 里,標識符有字母、數字、下划線組成。
在 Python 中,所有標識符可以包括英文、數字以及下划線(_),但不能以數字開頭。
Python 中的標識符是區分大小寫的。
以下划線開頭的標識符是有特殊意義的。以單下划線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用 from xxx import * 而導入;
以雙下划線開頭的 __foo 代表類的私有成員;以雙下划線開頭和結尾的 __foo__ 代表 Python 里特殊方法專用的標識,如 __init__() 代表類的構造函數。
2.Python有五個標准的數據類型
- Numbers(數字)
- String(字符串)
- List(列表)
- Tuple(元組)
- Dictionary(字典)
Python支持四種不同的數字類型:
- int(有符號整型)
- long(長整型[也可以代表八進制和十六進制])
- float(浮點型)
- complex(復數)
python的字串列表有2種取值順序:
- 從左到右索引默認0開始的,最大范圍是字符串長度少1
- 從右到左索引默認-1開始的,最大范圍是字符串開頭
List(列表) 是 Python 中使用最頻繁的數據類型。
- 列表可以完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至可以包含列表(即嵌套)。
- 列表用 [ ] 標識,是 python 最通用的復合數據類型。
- 列表中值的切割也可以用到變量 [頭下標:尾下標] ,就可以截取相應的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標可以為空表示取到頭或尾。
- 加號 + 是列表連接運算符,星號 * 是重復操作。
元組是另一個數據類型,類似於List(列表)。
- 元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表。
字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。
- 列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
- 字典用"{ }"標識。字典由索引(key)和它對應的值value組成。
3.Python數據類型轉換
有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作為函數名即可。
以下幾個內置的函數可以執行數據類型之間的轉換。這些函數返回一個新的對象,表示轉換的值。
| 函數 | 描述 |
|---|---|
| int(x [,base]) |
將x轉換為一個整數 |
| long(x [,base] ) |
將x轉換為一個長整數 |
| float(x) |
將x轉換到一個浮點數 |
| complex(real [,imag]) |
創建一個復數 |
| str(x) |
將對象 x 轉換為字符串 |
| repr(x) |
將對象 x 轉換為表達式字符串 |
| eval(str) |
用來計算在字符串中的有效Python表達式,並返回一個對象 |
| tuple(s) |
將序列 s 轉換為一個元組 |
| list(s) |
將序列 s 轉換為一個列表 |
| set(s) |
轉換為可變集合 |
| dict(d) |
創建一個字典。d 必須是一個序列 (key,value)元組。 |
| frozenset(s) |
轉換為不可變集合 |
| chr(x) |
將一個整數轉換為一個字符 |
| unichr(x) |
將一個整數轉換為Unicode字符 |
| ord(x) |
將一個字符轉換為它的整數值 |
| hex(x) |
將一個整數轉換為一個十六進制字符串 |
| oct(x) |
將一個整數轉換為一個八進制字符串 |
4.Python 運算符
- 算術運算符
- 比較(關系)運算符
- 賦值運算符
- 邏輯運算符
- 位運算符
- 成員運算符
- 身份運算符
- 運算符優先級
python算術運算符
| 運算符 | 描述 | 實例 |
|---|---|---|
| + | 加 - 兩個對象相加 | a + b 輸出結果 30 |
| - | 減 - 得到負數或是一個數減去另一個數 | a - b 輸出結果 -10 |
| * | 乘 - 兩個數相乘或是返回一個被重復若干次的字符串 | a * b 輸出結果 200 |
| / | 除 - x除以y | b / a 輸出結果 2 |
| % | 取模 - 返回除法的余數 | b % a 輸出結果 0 |
| ** | 冪 - 返回x的y次冪 | a**b 為10的20次方, 輸出結果 100000000000000000000 |
| // | 取整除 - 返回商的整數部分 | 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
①:python比較運算符
以下假設變量a為10,變量b為20:
| 運算符 | 描述 | 實例 |
|---|---|---|
| == | 等於 - 比較對象是否相等 | (a == b) 返回 False。 |
| != | 不等於 - 比較兩個對象是否不相等 | (a != b) 返回 true. |
| <> | 不等於 - 比較兩個對象是否不相等 | (a <> b) 返回 true。這個運算符類似 != 。 |
| > | 大於 - 返回x是否大於y | (a > b) 返回 False。 |
| < | 小於 - 返回x是否小於y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 | (a < b) 返回 true。 |
| >= | 大於等於 - 返回x是否大於等於y。 | (a >= b) 返回 False。 |
| <= | 小於等於 - 返回x是否小於等於y。 | (a <= b) 返回 true。 |
②:Python賦值運算符
以下假設變量a為10,變量b為20:
| 運算符 | 描述 | 實例 |
|---|---|---|
| = | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值為 c |
| += | 加法賦值運算符 | c += a 等效於 c = c + a |
| -= | 減法賦值運算符 | c -= a 等效於 c = c - a |
| *= | 乘法賦值運算符 | c *= a 等效於 c = c * a |
| /= | 除法賦值運算符 | c /= a 等效於 c = c / a |
| %= | 取模賦值運算符 | c %= a 等效於 c = c % a |
| **= | 冪賦值運算符 | c **= a 等效於 c = c ** a |
| //= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
③:Python位運算符
下表中變量 a 為 60,b 為 13,二進制格式如下:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| 運算符 | 描述 | 實例 |
|---|---|---|
| & | 按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 | (a & b) 輸出結果 12 ,二進制解釋: 0000 1100 |
| | | 按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。 | (a | b) 輸出結果 61 ,二進制解釋: 0011 1101 |
| ^ | 按位異或運算符:當兩對應的二進位相異時,結果為1 | (a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001 |
| ~ | 按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1 | (~a ) 輸出結果 -61 ,二進制解釋: 1100 0011, 在一個有符號二進制數的補碼形式。 |
| << | 左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。 | a << 2 輸出結果 240 ,二進制解釋: 1111 0000 |
| >> | 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數 | a >> 2 輸出結果 15 ,二進制解釋: 0000 1111 |
④:Python邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
| 運算符 | 邏輯表達式 | 描述 | 實例 |
|---|---|---|---|
| and | x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 | (a and b) 返回 20。 |
| or | x or y | 布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 | (a or b) 返回 10。 |
| not | not x | 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 | not(a and b) 返回 False |
⑤:Python成員運算符
除了以上的一些運算符之外,Python還支持成員運算符,測試實例中包含了一系列的成員,包括字符串,列表或元組。
| 運算符 | 描述 | 實例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否則返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
⑥:Python身份運算符
身份運算符用於比較兩個對象的存儲單元
| 運算符 | 描述 | 實例 |
|---|---|---|
| is | is 是判斷兩個標識符是不是引用自一個對象 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
| is not | is not 是判斷兩個標識符是不是引用自不同對象 | x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
注:is 與 == 區別:
is 用於判斷兩個變量引用對象是否為同一個, == 用於判斷引用變量的值是否相等。
5:Python 循環語句
Python提供了for循環和while循環(在Python中沒有do..while循環):
| 循環類型 | 描述 |
|---|---|
| while 循環 | 在給定的判斷條件為 true 時執行循環體,否則退出循環體。 |
| for 循環 | 重復執行語句 |
| 嵌套循環 | 你可以在while循環體中嵌套for循環 |
循環控制語句可以更改語句執行的順序。Python支持以下循環控制語句:
| 控制語句 | 描述 |
|---|---|
| break 語句 | 在語句塊執行過程中終止循環,並且跳出整個循環 |
| continue 語句 | 在語句塊執行過程中終止當前循環,跳出該次循環,執行下一次循環。 |
| pass 語句 | pass是空語句,是為了保持程序結構的完整性。 |
6:Python Number(數字)
Python 支持四種不同的數值類型:
- 整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。
- 長整型(long integers) - 無限大小的整數,整數最后是一個大寫或小寫的L。
- 浮點型(floating point real values) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
- 復數(complex numbers) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。
注:長整型也可以使用小寫"L",但是還是建議您使用大寫"L",避免與數字"1"混淆。Python使用"L"來顯示長整型。
- Python還支持復數,復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型
Python Number類型轉換:
int(x [,base ]) 將x轉換為一個整數 long(x [,base ]) 將x轉換為一個長整數 float(x ) 將x轉換到一個浮點數 complex(real [,imag ]) 創建一個復數 str(x ) 將對象 x 轉換為字符串 repr(x ) 將對象 x 轉換為表達式字符串 eval(str ) 用來計算在字符串中的有效Python表達式,並返回一個對象 tuple(s ) 將序列 s 轉換為一個元組 list(s ) 將序列 s 轉換為一個列表 chr(x ) 將一個整數轉換為一個字符 unichr(x ) 將一個整數轉換為Unicode字符 ord(x ) 將一個字符轉換為它的整數值 hex(x ) 將一個整數轉換為一個十六進制字符串 oct(x ) 將一個整數轉換為一個八進制字符串
python數學函數:
| 函數 | 返回值 ( 描述 ) |
|---|---|
| abs(x) | 返回數字的絕對值,如abs(-10) 返回 10 |
| ceil(x) | 返回數字的上入整數,如math.ceil(4.1) 返回 5 |
| cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 |
| exp(x) | 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045 |
| fabs(x) | 返回數字的絕對值,如math.fabs(-10) 返回10.0 |
| floor(x) | 返回數字的下舍整數,如math.floor(4.9)返回 4 |
| log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
| log10(x) | 返回以10為基數的x的對數,如math.log10(100)返回 2.0 |
| max(x1, x2,...) | 返回給定參數的最大值,參數可以為序列。 |
| min(x1, x2,...) | 返回給定參數的最小值,參數可以為序列。 |
| modf(x) | 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。 |
| pow(x, y) | x**y 運算后的值。 |
| round(x [,n]) | 返回浮點數x的四舍五入值,如給出n值,則代表舍入到小數點后的位數。 |
| sqrt(x) | 返回數字x的平方根,數字可以為負數,返回類型為實數,如math.sqrt(4)返回 2+0j |
Python隨機函數:
隨機數可以用於數學,游戲,安全等領域中,還經常被嵌入到算法中,用以提高算法效率,並提高程序的安全性。
Python包含以下常用隨機數函數:
| 函數 | 描述 |
|---|---|
| choice(seq) | 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。 |
| randrange ([start,] stop [,step]) | 從指定范圍內,按指定基數遞增的集合中獲取一個隨機數,基數缺省值為1 |
| random() | 隨機生成下一個實數,它在[0,1)范圍內。 |
| seed([x]) | 改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。 |
| shuffle(lst) | 將序列的所有元素隨機排序 |
| uniform(x, y) | 隨機生成下一個實數,它在[x,y]范圍內。 |
Python三角函數:
Python包括以下三角函數:
| 函數 | 描述 |
|---|---|
| acos(x) | 返回x的反余弦弧度值。 |
| asin(x) | 返回x的反正弦弧度值。 |
| atan(x) | 返回x的反正切弧度值。 |
| atan2(y, x) | 返回給定的 X 及 Y 坐標值的反正切值。 |
| cos(x) | 返回x的弧度的余弦值。 |
| hypot(x, y) | 返回歐幾里德范數 sqrt(x*x + y*y)。 |
| sin(x) | 返回的x弧度的正弦值。 |
| tan(x) | 返回x弧度的正切值。 |
| degrees(x) | 將弧度轉換為角度,如degrees(math.pi/2) , 返回90.0 |
| radians(x) | 將角度轉換為弧度 |
Python數學常量:
| 常量 | 描述 |
|---|---|
| pi | 數學常量 pi(圓周率,一般以π來表示) |
| e | 數學常量 e,e即自然常數(自然常數)。 |
7:Python字符串
Python轉義字符:
在需要在字符中使用特殊字符時,python用反斜杠(\)轉義字符。如下表:
| 轉義字符 | 描述 |
|---|---|
| \(在行尾時) | 續行符 |
| \\ | 反斜杠符號 |
| \' | 單引號 |
| \" | 雙引號 |
| \a | 響鈴 |
| \b | 退格(Backspace) |
| \e | 轉義 |
| \000 | 空 |
| \n | 換行 |
| \v | 縱向制表符 |
| \t | 橫向制表符 |
| \r | 回車 |
| \f | 換頁 |
| \oyy | 八進制數,yy代表的字符,例如:\o12代表換行 |
| \xyy | 十六進制數,yy代表的字符,例如:\x0a代表換行 |
| \other | 其它的字符以普通格式輸出 |
Python字符串運算符:
下表實例變量 a 值為字符串 "Hello",b 變量值為 "Python":
| 操作符 | 描述 | 實例 |
|---|---|---|
| + | 字符串連接 |
>>>a + b 'HelloPython'
|
| * | 重復輸出字符串 |
>>>a * 2 'HelloHello'
|
| [] | 通過索引獲取字符串中字符 |
>>>a[1] 'e'
|
| [ : ] | 截取字符串中的一部分 |
>>>a[1:4] 'ell'
|
| in | 成員運算符 - 如果字符串中包含給定的字符返回 True |
>>>"H" in a True
|
| not in | 成員運算符 - 如果字符串中不包含給定的字符返回 True |
>>>"M" not in a True
|
| r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有着幾乎完全相同的語法。 |
>>>print r'\n' \n >>> print R'\n' \n
|
| % | 格式字符串 | 請看下一章節 |
Python字符串格式化:
Python 支持格式化字符串的輸出 。盡管這樣可能會用到非常復雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用與 C 中 sprintf 函數一樣的語法。
如下實例:
#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
以上實例輸出結果:
My name is Zara and weight is 21 kg!
python字符串格式化符號:
| 符 號 | 描述 |
|---|---|
| %c | 格式化字符及其ASCII碼 |
| %s | 格式化字符串 |
| %d | 格式化整數 |
| %u | 格式化無符號整型 |
| %o | 格式化無符號八進制數 |
| %x | 格式化無符號十六進制數 |
| %X | 格式化無符號十六進制數(大寫) |
| %f | 格式化浮點數字,可指定小數點后的精度 |
| %e | 用科學計數法格式化浮點數 |
| %E | 作用同%e,用科學計數法格式化浮點數 |
| %g | %f和%e的簡寫 |
| %G | %f 和 %E 的簡寫 |
| %p | 用十六進制數格式化變量的地址 |
8.Python列表:
Python包含以下函數:
| 序號 | 函數 |
|---|---|
| 1 | cmp(list1, list2) 比較兩個列表的元素 |
| 2 | len(list) 列表元素個數 |
| 3 | max(list) 返回列表元素最大值 |
| 4 | min(list) 返回列表元素最小值 |
| 5 | list(seq) 將元組轉換為列表 |
Python包含以下方法:
| 序號 | 方法 |
|---|---|
| 1 | list.append(obj) 在列表末尾添加新的對象 |
| 2 | list.count(obj) 統計某個元素在列表中出現的次數 |
| 3 | list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表) |
| 4 | list.index(obj) 從列表中找出某個值第一個匹配項的索引位置 |
| 5 | list.insert(index, obj) 將對象插入列表 |
| 6 | list.pop(obj=list[-1]) 移除列表中的一個元素(默認最后一個元素),並且返回該元素的值 |
| 7 | list.remove(obj) 移除列表中某個值的第一個匹配項 |
| 8 | list.reverse() 反向列表中元素 |
| 9 | list.sort([func]) 對原列表進行排序 |
9.Python元組
Python的元組(tuple)與列表類似,不同之處在於元組的元素不能修改。
元組使用小括號,列表使用方括號。
元組內置函數:
Python元組包含了以下內置函數
| 序號 | 方法及描述 |
|---|---|
| 1 | cmp(tuple1, tuple2) 比較兩個元組元素。 |
| 2 | len(tuple) 計算元組元素個數。 |
| 3 | max(tuple) 返回元組中元素最大值。 |
| 4 | min(tuple) 返回元組中元素最小值。 |
| 5 | tuple(seq) 將列表轉換為元組。 |
10.Python字典(dictionary)
字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中
字典內置函數及方法:
Python字典包含了以下內置函數:
| 序號 | 函數及描述 |
|---|---|
| 1 | cmp(dict1, dict2) 比較兩個字典元素。 |
| 2 | len(dict) 計算字典元素個數,即鍵的總數。 |
| 3 | str(dict) 輸出字典可打印的字符串表示。 |
| 4 | type(variable) 返回輸入的變量類型,如果變量是字典就返回字典類型。 |
Python字典包含了以下內置方法:
| 序號 | 函數及描述 |
|---|---|
| 1 | dict.clear() 刪除字典內所有元素 |
| 2 | dict.copy() 返回一個字典的淺復制 |
| 3 | dict.fromkeys(seq[, val])) 創建一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應的初始值 |
| 4 | dict.get(key, default=None) 返回指定鍵的值,如果值不在字典中返回default值 |
| 5 | dict.has_key(key) 如果鍵在字典dict里返回true,否則返回false |
| 6 | dict.items() 以列表返回可遍歷的(鍵, 值) 元組數組 |
| 7 | dict.keys() 以列表返回一個字典所有的鍵 |
| 8 | dict.setdefault(key, default=None) 和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default |
| 9 | dict.update(dict2) 把字典dict2的鍵/值對更新到dict里 |
| 10 | dict.values() 以列表返回字典中的所有值 |
| 11 | pop(key[,default]) 刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。 |
| 12 | popitem() 隨機返回並刪除字典中的一對鍵和值。 |
11.匿名函數lambda
python 使用 lambda 來創建匿名函數。
- lambda只是一個表達式,函數體比def簡單很多。
- lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
- lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間里的參數。
- 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,后者的目的是調用小函數時不占用棧內存從而增加運行效率。
如:
sum = lambda arg1, arg2: arg1 + arg2; print "相加后的值為 : ", sum( 10, 20 ) //輸出30
12.python import語句
- From...import語句
Python 的 from 語句讓你從模塊中導入一個指定的部分到當前命名空間中。語法如下:
from modname import name1[, name2[, ... nameN]]
例如,要導入模塊 fib 的 fibonacci 函數,使用如下語句:
from fib import fibonacci
這個聲明不會把整個 fib 模塊導入到當前的命名空間中,它只會將 fib 里的 fibonacci 單個引入到執行這個聲明的模塊的全局符號表。
- From...import*語句
把一個模塊的所有內容全都導入到當前的命名空間也是可行的,只需使用如下聲明:
from modname import *
這提供了一個簡單的方法來導入一個模塊中的所有項目。然而這種聲明不該被過多地使用。
例如我們想一次性引入 math 模塊中所有的東西,語句如下:
from math import *
13.Python文件操作
- 打開和關閉文件
現在,您已經可以向標准輸入和輸出進行讀寫。現在,來看看怎么讀寫實際的數據文件。
Python 提供了必要的函數和方法進行默認情況下的文件基本操作。你可以用 file 對象做大部分的文件操作。
- open函數
你必須先用Python內置的open()函數打開一個文件,創建一個file對象,相關的方法才可以調用它進行讀寫。
語法:
file object = open(file_name [, access_mode][, buffering])
各個參數的細節如下:
- file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
- access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。
- buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設為大於1的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。
不同模式打開文件的完全列表:
| 模式 | 描述 |
|---|---|
| r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 |
| rb | 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。 |
| r+ | 打開一個文件用於讀寫。文件指針將會放在文件的開頭。 |
| rb+ | 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。 |
| w | 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| wb | 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| w+ | 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| wb+ | 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| a | 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
| ab | 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
| a+ | 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。 |
| ab+ | 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。 |
- File對象的屬性
一個文件被打開后,你有一個file對象,你可以得到有關該文件的各種信息。
以下是和file對象相關的所有屬性的列表:
| 屬性 | 描述 |
|---|---|
| file.closed | 返回true如果文件已被關閉,否則返回false。 |
| file.mode | 返回被打開文件的訪問模式。 |
| file.name | 返回文件的名稱。 |
| file.softspace | 如果用print輸出后,必須跟一個空格符,則返回false。否則返回true。 |
- close()方法
File 對象的 close()方法刷新緩沖區里任何還沒寫入的信息,並關閉該文件,這之后便不能再進行寫入。
當一個文件對象的引用被重新指定給另一個文件時,Python 會關閉之前的文件。用 close()方法關閉文件是一個很好的習慣。
語法:
fileObject.close();
- write()方法
write()方法可將任何字符串寫入一個打開的文件。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
write()方法不會在字符串的結尾添加換行符('\n'):
語法:
fileObject.write(string);
- read()方法
read()方法從一個打開的文件中讀取一個字符串。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
語法:
fileObject.read([count]);
- 文件定位
tell()方法告訴你文件內的當前位置;換句話說,下一次的讀寫會發生在文件開頭這么多字節之后。
seek(offset [,from])方法改變當前文件的位置。Offset變量表示要移動的字節數。From變量指定開始移動字節的參考位置。
如果from被設為0,這意味着將文件的開頭作為移動字節的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那么該文件的末尾將作為參考位置。
- 重命名和刪除文件
Python的os模塊提供了幫你執行文件處理操作的方法,比如重命名和刪除文件。
要使用這個模塊,你必須先導入它,然后才可以調用相關的各種功能。
remove方法
你可以用remove()方法刪除文件,需要提供要刪除的文件名作為參數。
- Python里的目錄
所有文件都包含在各個不同的目錄下,不過Python也能輕松處理。os模塊有許多方法能幫你創建,刪除和更改目錄。
1.mkdir()方法
可以使用os模塊的mkdir()方法在當前目錄下創建新的目錄們。你需要提供一個包含了要創建的目錄名稱的參數。
語法:
os.mkdir("newdir")
2.chdir()方法
可以用chdir()方法來改變當前的目錄。chdir()方法需要的一個參數是你想設成當前目錄的目錄名稱。
語法:
os.chdir("newdir")
3.rmdir()方法
rmdir()方法刪除目錄,目錄名稱以參數傳遞。
在刪除這個目錄之前,它的所有內容應該先被清除。
語法:
os.rmdir('dirname')
- 文件、目錄相關方法
三個重要的方法來源能對Windows和Unix操作系統上的文件及目錄進行一個廣泛且實用的處理及操控,如下:
File 對象方法: file對象提供了操作文件的一系列方法。
OS 對象方法: 提供了處理文件及目錄的一系列方法。
14.Python File(文件)方法
file 對象使用 open 函數來創建,下表列出了 file 對象常用的函數:
| 序號 | 方法及描述 |
|---|---|
| 1 | 關閉文件。關閉后文件不能再進行讀寫操作。 |
| 2 | 刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。 |
| 3 | 返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。 |
| 4 | 如果文件連接到一個終端設備返回 True,否則返回 False。 |
| 5 | 返回文件下一行。 |
| 6 | 從文件讀取指定的字節數,如果未給定或為負則讀取所有。 |
| 7 | 讀取整行,包括 "\n" 字符。 |
| 8 | 讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint字節的行, 實際讀取值可能比sizhint較大, 因為需要填充緩沖區。 |
| 9 | 設置文件當前位置 |
| 10 | 返回文件當前位置。 |
| 11 | 截取文件,截取的字節通過size指定,默認為當前文件位置。 |
| 12 | 將字符串寫入文件,沒有返回值。 |
| 13 | 向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。 |
15.Python內置函數
