天天看點

python辨別符的組成元素_python基礎知識-(1)文法基礎知識總結(轉載)

在 Python 裡,辨別符有字母、數字、下劃線組成。

在 Python 中,所有辨別符可以包括英文、數字以及下劃線(_),但不能以數字開頭。

Python 中的辨別符是區分大小寫的。

以下劃線開頭的辨別符是有特殊意義的。

(1)以單下劃線開頭 _foo 的代表不能直接通路的類屬性,需通過類提供的接口進行通路,不能用 from xxx import * 而導入;

(2)以雙下劃線開頭的 __foo 代表類的私有成員;

(3)以雙下劃線開頭和結尾的 __foo__ 代表 Python 裡特殊方法專用的辨別,如 __init__() 代表類的構造函數。

2.Python有五個标準的資料類型

Numbers(數字)

String(字元串)

List(清單)

Tuple(元組)

Dictionary(字典)

(1)Python支援四種不同的數字類型:

int(有符号整型)

long(長整型[也可以代表八進制和十六進制])

float(浮點型)

complex(複數)

(2)python的字串清單有2種取值順序:

從左到右索引預設0開始的,最大範圍是字元串長度少1

從右到左索引預設-1開始的,最大範圍是字元串開頭

(3)List(清單) 是 Python 中使用最頻繁的資料類型:

清單可以完成大多數集合類的資料結構實作。它支援字元,數字,字元串甚至可以包含清單(即嵌套)。

清單用 [ ] 辨別,是 python 最通用的複合資料類型。

清單中值的切割也可以用到變量 [頭下标:尾下标] ,就可以截取相應的清單,從左到右索引預設 0 開始,從右到左索引預設 -1 開始,下标可以為空表示取到頭或尾。

加号 + 是清單連接配接運算符,星号 * 是重複操作。

(4)元組是另一個資料類型,類似于List(清單):

元組用"()"辨別。内部元素用逗号隔開。但是元組不能二次指派,相當于隻讀清單。

(5)字典(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 運算符

算術運算符

比較(關系)運算符

指派運算符

邏輯運算符

位運算符

成員運算符

身份運算符

運算符優先級

(1)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

(2)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。

(3) 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

(4)Python位運算符

下表中變量 a 為 60,b 為 13,二進制格式如下:

a =00111100b =00001101-----------------a&b =00001100a|b =00111101a^b =00110001~a =11000011

運算符描述執行個體

&

按位與運算符:參與運算的兩個值,如果兩個相應位都為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, 在一個有符号二進制數的補碼形式。

<<

左移動運算符:運算數的各二進位全部左移若幹位,由"<

a << 2 輸出結果 240 ,二進制解釋: 1111 0000

>>

右移動運算符:把">>"左邊的運算數的各二進位全部右移若幹位,">>"右邊的數指定移動的位數

a >> 2 輸出結果 15 ,二進制解釋: 0000 1111

(5)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

(6) Python成員運算符

除了以上的一些運算符之外,Python還支援成員運算符,測試執行個體中包含了一系列的成員,包括字元串,清單或元組。

運算符描述執行個體

in

如果在指定的序列中找到值傳回 True,否則傳回 False。

x 在 y 序列中 , 如果 x 在 y 序列中傳回 True。

not in

如果在指定的序列中沒有找到值傳回 True,否則傳回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中傳回 True。

(7)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 循環語句

(1)Python提供了for循環和while循環(在Python中沒有do..while循環)

循環類型描述

while 循環

在給定的判斷條件為 true 時執行循環體,否則退出循環體。

for 循環

重複執行語句

嵌套循環

你可以在while循環體中嵌套for循環

(2)循環控制語句可以更改語句執行的順序。Python支援以下循環控制語句

控制語句描述

break 語句

在語句塊執行過程中終止循環,并且跳出整個循環

continue 語句

在語句塊執行過程中終止目前循環,跳出該次循環,執行下一次循環。

pass 語句

pass是空語句,是為了保持程式結構的完整性。

6 Python Number(數字)

(1)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都是浮點型

(2)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 )将一個整數轉換為一個八進制字元串(3)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

(4)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]範圍内。

(5)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)

将角度轉換為弧度

(6)Python數學常量

常量描述

pi

數學常量 pi(圓周率,一般以π來表示)

e

數學常量 e,e即自然常數(自然常數)。

7:Python字元串(1)Python轉義字元:

在需要在字元中使用特殊字元時,python用反斜杠(\)轉義字元。如下表:

轉義字元描述

\(在行尾時)

續行符

\\

反斜杠符号

\'

單引号

\"

雙引号

\a

響鈴

\b

倒退(Backspace)

\e

轉義

\000

\n

換行

\v

縱向制表符

\t

橫向制表符

\r

回車

\f

換頁

\oyy

八進制數,yy代表的字元,例如:\o12代表換行

\xyy

十六進制數,yy代表的字元,例如:\x0a代表換行

\other

其它的字元以普通格式輸出

(2)Python字元串運算符

下表執行個體變量 a 值為字元串 "Hello",b 變量值為 "Python":

操作符描述執行個體

+

字元串連接配接

>>>a+ b'HelloPython'

*

重複輸出字元串

>>>a* 2'HelloHello'

[]

通過索引擷取字元串中字元

>>>a[1]'e'

[ : ]

截取字元串中的一部分

>>>a[1:4]'ell'

in

成員運算符 - 如果字元串中包含給定的字元傳回 True

>>>"H"inaTrue

not in

成員運算符 - 如果字元串中不包含給定的字元傳回 True

>>>"M"notinaTrue

r/R

原始字元串 - 原始字元串:所有的字元串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字元串除在字元串的第一個引号前加上字母"r"(可以大小寫)以外,與普通字元串有着幾乎完全相同的文法。

>>>printr'\n'\n>>> printR'\n'\n

%

格式字元串

請看下一章節

(3)Python字元串格式化:

Python 支援格式化字元串的輸出 。盡管這樣可能會用到非常複雜的表達式,但最基本的用法是将一個值插入到一個有字元串格式符 %s 的字元串中。

在 Python 中,字元串格式化使用與 C 中 sprintf 函數一樣的文法。

如下執行個體:

#!/usr/bin/pythonprint"My name is%s and weight is%d kg!"%('Zara',21)

以上執行個體輸出結果:

Myname isZaraandweight is21kg!

python字元串格式化符号:

符   号描述

%c

格式化字元及其ASCII碼

%s

格式化字元串

%d

格式化整數

%u

格式化無符号整型

%o

格式化無符号八進制數

%x

格式化無符号十六進制數

%X

格式化無符号十六進制數(大寫)

%f

格式化浮點數字,可指定小數點後的精度

%e

用科學計數法格式化浮點數

%E

作用同%e,用科學計數法格式化浮點數

%g

%f和%e的簡寫

%G

%f 和 %E 的簡寫

%p

用十六進制數格式化變量的位址

8.Python清單

(1)Python包含以下函數

序号函數

1

cmp(list1, list2)比較兩個清單的元素

2

len(list)清單元素個數

3

max(list)傳回清單元素最大值

4

min(list)傳回清單元素最小值

5

list(seq)将元組轉換為清單

(2)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)與清單類似,不同之處在于(a)元組的元素不能修改;(b)元組使用小括号,清單使用方括号

(1)Python元組包含了以下内置函數

序号方法及描述

1

cmp(tuple1, tuple2)比較兩個元組元素。

2

len(tuple)計算元組元素個數。

3

max(tuple)傳回元組中元素最大值。

4

min(tuple)傳回元組中元素最小值。

5

tuple(seq)将清單轉換為元組。

10.Python字典(dictionary)

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值(key=>value)對用冒号(:)分割,每個對之間用逗号(,)分割,整個字典包括在花括号({})中

(1)Python字典包含了以下内置函數:

序号函數及描述

1

cmp(dict1, dict2)比較兩個字典元素。

2

len(dict)計算字典元素個數,即鍵的總數。

3

str(dict)輸出字典可列印的字元串表示。

4

type(variable)傳回輸入的變量類型,如果變量是字典就傳回字典類型。

(2)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 =lambdaarg1,arg2:arg1 +arg2;print"相加後的值為 : ",sum(10,20) //輸出3012.python import語句

(1)

From...import語句

Python 的 from 語句讓你從子產品中導入一個指定的部分到目前命名空間中。文法如下:

frommodname importname1[,name2[,...nameN]]

例如,要導入子產品 fib 的 fibonacci 函數,使用如下語句:

fromfib importfibonacci

這個聲明不會把整個 fib 子產品導入到目前的命名空間中,它隻會将 fib 裡的 fibonacci 單個引入到執行這個聲明的子產品的全局符号表。

(2)From...import*語句

把一個子產品的所有内容全都導入到目前的命名空間也是可行的,隻需使用如下聲明:

frommodname import*

這提供了一個簡單的方法來導入一個子產品中的所有項目。然而這種聲明不該被過多地使用。

例如我們想一次性引入 math 子產品中所有的東西,語句如下:

frommath import*13.Python檔案操作

(1)打開和關閉檔案

現在,您已經可以向标準輸入和輸出進行讀寫。現在,來看看怎麼讀寫實際的資料檔案。

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()方法删除檔案,需要提供要删除的檔案名作為參數。

(2)

Python裡的目錄

所有檔案都包含在各個不同的目錄下,不過Python也能輕松處理。os子產品有許多方法能幫你建立,删除和更改目錄。

mkdir()方法

可以使用os子產品的mkdir()方法在目前目錄下建立新的目錄們。你需要提供一個包含了要建立的目錄名稱的參數。

文法:

os.mkdir("newdir")

chdir()方法

可以用chdir()方法來改變目前的目錄。chdir()方法需要的一個參數是你想設成目前目錄的目錄名稱。

文法:

os.chdir("newdir")

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。

6

從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。

8

讀取所有行并傳回清單,若給定sizeint>0,傳回總和大約為sizeint位元組的行, 實際讀取值可能比sizhint較大, 因為需要填充緩沖區。

10

11

截取檔案,截取的位元組通過size指定,預設為目前檔案位置。

12

将字元串寫入檔案,沒有傳回值。

13

向檔案寫入一個序列字元串清單,如果需要換行則要自己加入每行的換行符。

15.Python OS 檔案/目錄方法

os 子產品提供了非常豐富的方法用來處理檔案和目錄。常用的方法如下表所示:

序号方法及描述

8

關閉所有檔案描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略

9

複制檔案描述符 fd

10

将一個檔案描述符 fd 複制到另一個 fd2

11

通過檔案描述符改變目前工作目錄

12

改變一個檔案的通路權限,該檔案由參數fd指定,參數mode是Unix下的檔案通路權限。

13

修改一個檔案的所有權,這個函數修改一個檔案的使用者ID和使用者組ID,該檔案由檔案描述符fd指定。

14

強制将檔案寫入磁盤,該檔案由檔案描述符fd指定,但是不強制更新檔案的狀态資訊。

16

傳回一個打開的檔案的系統配置資訊。name為檢索的系統配置的值,它也許是一個定義系統值的字元串,這些名字在很多标準中指定(POSIX.1, Unix 95, Unix 98, 和其它)。

17

傳回檔案描述符fd的狀态,像stat()。

18

傳回包含檔案描述符fd的檔案的檔案系統的資訊,像 statvfs()

19

強制将檔案描述符為fd的檔案寫入硬碟。

20

裁剪檔案描述符fd對應的檔案, 是以它最大不能超過檔案大小。

22

傳回一個目前工作目錄的Unicode對象

23

如果檔案描述符fd是打開的,同時與tty(-like)裝置相連,則傳回true, 否則False。

24

設定路徑的标記為數字标記,類似 chflags(),但是沒有軟連結

26

更改檔案所有者,類似 chown,但是不追蹤連結。

27

建立硬連結,名為參數 dst,指向參數 src

28

傳回path指定的檔案夾包含的檔案或檔案夾的名字的清單。

29

設定檔案描述符 fd目前位置為pos, how方式修改: SEEK_SET 或者 0 設定從檔案開始的計算的pos; SEEK_CUR或者 1 則從目前位置計算; os.SEEK_END或者2則從檔案尾部開始. 在unix,Windows中有效

30

像stat(),但是沒有軟連結

31

從原始的裝置号中提取裝置major号碼 (使用stat中的st_dev或者st_rdev field)。

32

以major和minor裝置号組成一個原始裝置号

33

遞歸檔案夾建立函數。像mkdir(), 但建立的所有intermediate-level檔案夾需要包含子檔案夾。

34

從原始的裝置号中提取裝置minor号碼 (使用stat中的st_dev或者st_rdev field )。

35

以數字mode的mode建立一個名為path的檔案夾.預設的 mode 是 0777 (八進制)。

36

建立命名管道,mode 為數字,預設為 0666 (八進制)

37

建立一個名為filename檔案系統節點(檔案,裝置特别檔案或者命名pipe)。

38

打開一個檔案,并且設定需要的打開選項,mode參數是可選的

39

打開一個新的僞終端對。傳回 pty 和 tty的檔案描述符。

41

建立一個管道. 傳回一對檔案描述符(r, w) 分别為讀和寫

43

從檔案描述符 fd 中讀取最多 n 個位元組,傳回包含讀取位元組的字元串,檔案描述符 fd對應檔案已達到結尾, 傳回一個空字元串。

45

删除路徑為path的檔案。如果path 是一個檔案夾,将抛出OSError; 檢視下面的rmdir()删除一個 directory。

47

重命名檔案或目錄,從 src 到 dst

48

遞歸地對目錄進行更名,也可以對檔案進行更名。

49

删除path指定的空目錄,如果目錄非空,則抛出一個OSError異常。

50

擷取path指定的路徑的資訊,功能等同于C API中的stat()系統調用。

52

54

傳回與終端fd(一個由os.open()傳回的打開的檔案描述符)關聯的程序組

55

設定與終端fd(一個由os.open()傳回的打開的檔案描述符)關聯的程序組為pg。

57

傳回一個打開的模式為(w+b)的檔案對象 .這檔案對象沒有檔案夾入口,沒有檔案描述符,将會自動删除。

58

為建立一個臨時檔案傳回一個唯一的路徑

59

傳回一個字元串,它表示與檔案描述符fd 關聯的終端裝置。如果fd 沒有與終端裝置關聯,則引發一個異常。

61

傳回指定的path檔案的通路和修改的時間。

63

寫入字元串到檔案描述符 fd中. 傳回實際寫入的字元串長度

16.Python内置函數