python檔案和變數讀寫

2021-10-25 13:45:19 字數 3506 閱讀 7242

對檔案操作首先需要找的檔案的路徑,os.path模組可以很好地對路徑進行操作問題。

結構資料

變數讀寫

讀寫檔案有3個步驟:

呼叫open()函式開啟檔案,返回file物件;

呼叫file物件的read()write()方法讀或寫檔案;

呼叫file物件的close()方法,關閉檔案。

open()函式傳入乙個路徑,表示需要開啟的檔案,既可以是相對路徑,又可以是絕對路徑,返回file物件,如

file

=open

('test.txt'

)# 這裡用的是相對路徑

這個命令將以讀模式開啟檔案,也即只允許從檔案中讀取資料,而不能寫入或修改。如果需要寫入檔案,則需要傳入第2個引數wa,表示寫模式或新增模式,兩者區別將在下文敘述,如

file

=open

('test.txt'

,'w'

)

第2個引數可以是r表示唯讀,與預設情況相同。r+表示既可讀又可寫。

獲取了file物件後,可利用read()方法讀取檔案內容,如

file

.read(size)

該方法將讀取size大小的文字,形成乙個大的字串。如果size省略或為負,則讀取整個文字。如果已經讀到了檔案末尾,則返回空字串。

如果需要讀取文字中的一行則需要使用readline()方法。readlines()方法可以讀取所有的行,list(file)也可以完成。

file

.readline(

)file

.readlines(

)list

(file

)

讀取內容時會自動獲取文字最後的換行符\n

檔案在讀取過程中有乙個指標,表示讀取的位置,可用tell()方法獲取。

file

.tell(

)

使用seek()方法可以讓指標到達指定位置,

file

.seek(offset, whence)

whence為0(預設)表示檔案開頭,1表示當前位置,2表示末尾。offset表示相對偏移量。

如需寫入檔案,建立檔案物件時要傳入引數w,表示從頭開始寫檔案,這將覆蓋檔案中原有內容。如果傳入a,則表示在文字最後新增文字,可理解為向列表末尾新增新內容。在這兩種情況下,如果檔名不存在,則會建立新的空檔案。

open

('test.txt'

,'w'

)file

.write(

'hello world\n'

)open

('test.txt'

,'a'

)file

.write(

'hello'

+str(2

))

write()方法需要自行新增換行符\n

寫入整數時要顯示地將其轉為字串。

close方法用於關閉檔案,如

file

.close(

)

如果不使用這條語句關閉檔案,可能會導致有些內容沒有寫入到檔案中。

在開啟檔案時可能會出現異常,可用try-except語句處理,詳細可戳此鏈結。但為了簡便可用with語句開啟檔案,如

with

open

('test.txt'

)as f:

f.read(

)

with語句後可進行檔案操作,它可自動呼叫finally語句。

更詳細的檔案讀寫可參考文件。

如果需要讀取字典這樣的結構資料,可以採用json格式,這需要借助json模組。

import json
dumps()方法可以檢視json字串表示方法的結果。

x =[1

,'******'

,'list'

]json.dumps(x)

# '[1, "******", "list"]'

乙個類似的方法是dump(),它可以寫入檔案。

json.dump(x, f)
如果需要從檔案中讀取則使用load()方法。

x = json.load(f)
利用shelve模組可以將變數儲存到二進位制shelf檔案中,也可以從硬碟中恢復變數。如

import shelve

shelf = shelve.

open

('data'

)l =

['a'

,'b'

,'c'

]shelf[

'l']

= lshelf.close(

)

上面這段**完成了變數儲存。如果要讀取資料

shelf = shelve.

open

('data'

)shelf[

'l']

shelf.close(

)

這裡開啟檔案不必指定讀或寫,因為開啟之後既能讀又能寫。

從上面**可以看出,shelf檔案類似於字典,因此它可以使用keys()values()方法,如

list

(shelf.keys())

list

(shelf.values(

))

這兩個方法可戳此鏈結檢視。

更詳細的內容可以檢視文件。

python檔案讀寫和整理

在windows上面,路徑的書寫使用反斜槓作為資料夾之間的分隔符 在os x或者linux上則是是用正斜槓。python上對檔案進行操作要使用到os這個模組。1.os模組和os.path模組的相關方法。使用os.path.join 函式,通過給它傳遞各資料夾的名字,會返回乙個檔案路徑的字串,並根據使...

python檔案讀寫和異常

1,文字檔案 2,二進位制檔案 print type data with open 吉多.jpg wb as fs2 fs2.write data except filenotfounderror as e print 指定的檔案無法開啟.except ioerror as e print 讀寫檔案...

Python檔案讀寫

今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...