1. 程式人生 > >python3 File檔案函式

python3 File檔案函式

以下講解python3中對檔案操作的函式 

file.close()

含義:close()方法用於關閉一個已開啟的檔案,關閉後的檔案不能在進行讀寫操作。否則會觸發ValueError錯誤。

語法:file.close();                   

返回值:無

以下例項演示close()用法:


#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#關閉檔案
f.close()

#python3 test.py

The file name is: /root/dpc

如果關閉該檔案時再次讀取會報錯:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#關閉檔案
f.close()

#再次讀取
f.read()

#python3 test.py

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    f.read()
ValueError:

I/O operation on closed file

file.fileno()

含義:fileno()方法返回一個整形的檔案描述符,可用於底層作業系統的 I/O 操作。

語法:file.fileno()

返回值:無

以下例項演示了fileno()用法:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#輸出檔案描述符
fd = f.fileno()
print ("The FD is:",fd)

#關閉檔案
f.close()

# python3 test.py

The file name is: /root/dpc
The FD is: 3

file.istty()

含義:istty()方法檢測檔案是否連線到一個終端裝置,如果是返回 True,否則返回 False。

語法:file.istty():

返回值:連線到一個終端裝置返回 True,否則返回 False。

以下例項演示了isatty()用法:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#輸出檔案描述符
ret = f.isatty()
print ("Return value:",ret)

#關閉檔案
f.close()

# python3 test.py

The file name is: /root/dpc
Return value: False

file.next()

含義:next()該方法返回檔案的下一行。

語法:next(file):

返回值:返回檔案下一行。

以下例項演示了next()用法:

檔案dpc內容如下:

我在一樓,我叫張三
我在二樓,我叫李四
我在三樓,我叫王五

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#迴圈讀取檔案
for i in range(3):
    print ("number %s:" % (i),next(f))

#關閉檔案
f.close()

# python3 test.py

The file name is: /root/dpc
number 0: 我在一樓,我叫張三

number 1: 我在二樓,我叫李四

number 2: 我在三樓,我叫王五

file.read()

含義:read()方法用於從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。

語法:file.read()

返回值:返回讀取的字串

引數:size   #從檔案中讀取的位元組數。

以下例項演示了 read() 方法的使用:

檔案dpc內容如下:

Python

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#讀取指定位元組數
r = f.read(2)
print ("Returns a string:",r)

#關閉檔案
f.close()

# python3 test.py 
The file name is: /root/dpc
Returns a string: Py

file.readline()

含義:方法用於從檔案讀取整行,包括 "\n" 字元。如果指定了一個非負數的引數,則返回指定大小的位元組數,包括 "\n" 字元。

語法:file.readline()

引數:size   #從檔案中讀取的位元組數。

以下例項演示了 readline() 方法的使用:

檔案 runoob.txt 的內容如下:

www.baidu.com
www.google.com

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#讀取整行
r = f.readline()
print ("Read the entire row:",r)

#讀取指定位元組數
r = f.readline(10)
print ("Number of bytes read:",r)

#關閉檔案
f.close()

# python3 test.py 
The file name is: /root/dpc
Read the entire row: www.baidu.com

Number of bytes read: www.google

file.readlines()

含義:方法用於讀取所有行(直到結束符 EOF)並返回列表,該列表可以由 Python 的 for... in ... 結構進行處理。

語法:file.readlines()

返回值:返回列表,包含所有的行。

以下例項演示了 readline() 方法的使用:

檔案 dpc 的內容如下:

www.baidu.com
www.google.com

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#返回列表值
r = f.readlines()
print ("Returns a list value:",r)

#關閉檔案
f.close()

# python3 test.py 
The file name is: /root/dpc
Returns a list value: ['www.baidu.com\n', 'www.google.com\n']

用for迴圈輸出每行

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#for迴圈
for line in f.readlines():
    line = line.strip()
    print ("Read the entire row:",line)

#關閉檔案
f.close()

# python3 test.py 
The file name is: /root/dpc
Read the entire row: www.baidu.com
Read the entire row: www.google.com

file.seek()

含義:方法用於移動檔案讀取指標到指定位置。

語法:file.seek(offset,whence)

引數:offset              #開始的偏移量,也就是代表需要移動偏移的位元組數

           whence:         #可選,預設值為 0。給offset引數一個定義,表示要從哪個位置開始偏移;0代表從檔案開頭開始算起,1代表從當前                                     位置開始算起,2代表從檔案末尾算起。

以下例項演示了 readline() 方法的使用:

檔案 dpc 的內容如下:

www.baidu.com
www.google.com

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#讀取整行
r = f.readline()
print ("String:",r)

#設定檔案讀取指標
f.seek(14,0)
r = f.readline()
print ("String:",r)

#關閉檔案
f.close()

# python3 test.py 
The file name is: /root/dpc
String: www.baidu.com

String: www.google.com

file.tell()

含義:方法返回檔案的當前位置,即檔案指標當前位置。

語法:file.tell()

返回值:返回檔案的當前位置。

以下例項演示了 tell() 方法的使用:

檔案 dpc 的內容如下:

www.baidu.com
www.google.com

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#讀取整行
r = f.readline()
print ("String:",r)

#當前位置
pos = f.tell()
print ("current location:",pos)

#關閉檔案
f.close()

# python3 test.py

The file name is: /root/dpc
String: www.baidu.com

current location: 14

file.truncate()

含義:方法用於從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;無 size 表示從當前位置截斷;

語法:file.truncate(size)

引數:size        #可選,如果存在則檔案截斷為 size 位元組。

以下例項演示了 truncate() 方法的使用:

檔案 runoob.txt 的內容如下:

Python

讀取檔案內容:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#截斷字串
f.truncate(2)
str = f.read()
print ("Read data: %s" % (str))

#關閉檔案
f.close()

# python3 test.py 
The file name is:  /root/dpc
Read data: Py

file.write()

含義:方法用於向檔案中寫入指定字串。

           在檔案關閉前或緩衝區重新整理前,字串內容儲存在緩衝區中,這時你在檔案中是看不到寫入的內容的。如果檔案開啟模式帶 b,那             寫入檔案內容時,str (引數)要用 encode 方法轉為 bytes 形式,否則報錯:TypeError: a bytes-like object is required, not 'str'。

語法:file.write(str)

引數:   str             #要寫入檔案的字串

返回值:返回的是寫入的字元長度。

以下例項演示了 tell() 方法的使用:

檔案 dpc 的內容如下:

www.baidu.com
www.google.com

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#輸出檔名
print ("The file name is:",f.name)

#在檔案末尾寫入一行
f.seek(0, 2)
line = f.write( str )

#讀取檔案所有內容
f.seek(0,0)
for index in range(3):
    line = next(f)
    print ("Number %d - %s" % (index, line))

#關閉檔案
f.close()

# python3 test.py 
The file name is:  /root/dpc

Number 0 - www.baidu.com

Number 1 - www.google.com

Number 2 - www.runoob.com
 

file.writelines()

含義:方法用於向檔案中寫入一序列的字串。這一序列字串可以是由迭代物件產生的,如一個字串列表。換行需要制定換行符 \n。

語法:file.wrttelines(str)

引數:str                 #要寫入檔案的字串序列。

以下例項演示了 writelines() 方法的使用:

#!/usr/bin/python3

#開啟檔案
f = open("/root/dpc","r")

#寫入資料
seq = ['www.baidu.com \n','www.google.com \n']
f.writelines(seq)

#關閉檔案
f.close()

# python3 test.py

檢視檔案內容:

# cat /root/dpc 
www.baidu.com 
www.google.com