1.一次性讀取檔案全部內容(讀取的檔案milktea和main.py在同一目錄的情況)
'''
讀取與main.py同一目錄的檔案milktea.txt檔案裡面的內容
利用open()函式開啟檔案,返回的是乙個表示檔案的物件,將這個物件命名為file_object
下面這個**是檔案裡面不包含漢字的情況,如果檔案中包含漢字就會出現亂碼
'''with
open
('milktea'
)as file_object:
contents = file_object.read(
)if contents:
print
(contents)
else
:'''相比於原始檔案,該輸出唯一不同的地方就是末尾多了乙個空行。之所以出現這個空行,是因為read()到達檔案末尾時候返回乙個空字串,而將這個空字串顯示出來就是乙個空行'''
# 借助函式rstrip()將空行刪除
print
(contents.rstrip(
))
不刪除末尾空行的效果:
(2)檔案裡面包含漢字的情況:
資料之所以沒有讀出來,是因為python讀取的資料和我們文字裡面預設的文字編碼方式不同,這時候就造成了資料沒有被讀取出來,但是檔案裡面有漢字是很平常的情況啊,我們怎麼辦?
with
open
('milktea'
, encoding=
'utf-8'
)as file_object:
contents = file_object.read(
)print
(contents)
print
('好好生活啊~'
)
12345
56783
aaaa
bbbb
cdef
好好生活
好好生活啊~
個人認為《python讀寫文字檔案和二進位制檔案的方法以及注意事項》這篇文章中關於讀寫文字檔案內容的注意事項非常詳盡,上圖就是擷取自這篇部落格,值得好好看一看。
(3)讀取單行**
with
open
('milktea'
, encoding=
'utf-8'
)as file_object:
# 讀取一行**
contents = file_object.readline(
)# 借助迴圈實現讀取此文字內的所有行內容
while contents:
# 借助readline()讀取到的內容不僅僅包含檔案一行裡的內容,還有回車符
print
(contents.rstrip())
contents = file_object.readline(
)print
('小朋友,你已經看完了我的日記了~'
)
這是這段**的效果圖:
如果我不刪除字串末尾的空白:
關鍵字with在不需要訪問檔案之後將其關閉,這個關閉是python自身在合適的時候進行關閉。
特別注意:
這也就是說我們所建立的file.object只是區域性變數,並不能作為全域性變數使用,要想獲得檔案的內容,借助readline()函式將檔案各行的內容儲存在乙個列表裡面。
# 利用列表將讀取到的內容可以在with引導的函式外使用
file_contents =
with
open
('milktea'
, encoding=
'utf-8'
)as file_object:
# 讀取一行**
contents = file_object.readline(
)# 借助迴圈實現讀取此文字內的所有行內容
while contents:
# 借助readline()讀取到的內容不僅僅包含檔案一行裡的內容,還有回車符
contents = file_object.readline(
)print
('小朋友,你已經看完了我的日記了~'
)print
(file_contents)
小朋友,你已經看完了我的日記了~
['今天風很大\n'
,'我穿的賊暖和\n'
,'哎呀媽呀\n'
,'五點了\n'
,'明天蹲實驗室\n'
,'二歲\n'
,'好好生活\n'
]
通過列表儲存的形式我們很容易看出來,在每讀取完一行的內容之後,contents內容裡面會包含乙個回車符,如果想要跟原來文字檔案的內容一模一樣,就需要借助函式rstrip().
當然在我們傳統的觀念裡面,開啟檔案用open()函式,那麼關閉函式就可以借助close函式,這個是非常正確的思維,但是但是但是,如果在讀取檔案的**中有一處出現了問題,那麼沒等執行到close()函式,程式就卡住了,這時候檔案也並沒有關閉,而檔案沒有關閉就很容易造成資料丟失,所以借用with來讓python自己選擇乙個合適的時候自動關閉檔案也是一種辦法。
2.通過檔案路徑訪問檔案內容
相對路徑格式:
with
open
('text_files\filename.txt'
, encoding=
'utf-8'
)as file_object:
而絕對路徑是將檔案的準確位置告訴python:
在f盤python資料夾裡面建立乙個名為python的txt檔案:
Python學習筆記(四) 檔案讀取
教程 莫煩python 環境 pycharm 寫開啟 寫入內容 text this is a test.nthe second line nfinal line my file open myfile.txt a 以寫形式開啟檔案 my file.write text 往檔案裡寫內容 my file...
python讀取csv,txt,mysql檔案
1.python讀取csv檔案 def get csv path f open path,r encoding utf 8 reader csv.reader f data 以列表形式輸出每一行 for row in reader return data 寫入內容到csv usr bin env p...
Swift2 0 文件學習筆記
最近把 the swift programming language 中文版 粗略地看了一遍,並隨手留了點筆記,以備忘。1 閉包,通過閉包對字串陣列進行排序,閉包的函式體部分由關鍵字in引入 names.sort names.sort 型別推斷,推斷引數型別 names.sort 隱式返回,推斷返回...