1. 程式人生 > >機器學習之python學習(十九)

機器學習之python學習(十九)

今天來學習python中的檔案操作這是很關鍵的,
這次先學習檔案的讀寫,需要注意的是檔案的許可權的問題。
總結如下最常用的許可權:

許可權 數量
r 開啟只讀檔案,該檔案必須存在。
w 開啟只寫檔案,若檔案存在則檔案長度清為0, 即該檔案內容會消失。若檔案不存在則建立該檔案。
r+ 開啟可讀寫的檔案,該檔案必須存在。
w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。
a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。
a+ 以附加方式開啟可讀寫的檔案。 若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

總結下來有+的均可以讀寫。

你們也可以參考廖雪峰大神的python教學快速入門。

程式碼塊

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : SundayCoder-俊勇
# @File : filelearn.py # 今天我們來學習一下python中檔案的操作。 # 很多機器學習需要讀入csv檔案 # 所以檔案的操作是機器學習必須學會的一個技能 # (1)檔案的開啟和關閉[不標準的寫法] f=open('hello.txt','r') print f.read() f.close() # 檔案的操作的最後一步必須是關閉檔案。 # 因為read()函式是一次性輸出檔案的所有資料 # 所以輸出結果為: # hello wolrd # 你好啊 # (2)檔案開啟過程中會有錯誤,所以可以使用try-finally來處理錯誤 # 檔案的開啟與關閉的標準寫法。 try
: f = open('hello.txt', 'r') print f.read() finally: if f:#如果f存在則關閉 f.close() # (3)檔案的開啟和關閉每次都這麼寫實在太繁瑣, # 所以,Python引入了with語句來自動幫我們呼叫close()方法: with open('hello.txt', 'r') as f: print f.read() # 注:第三種是最常用的一種方法,必須要掌握的方法。 # (4)如果開啟的檔案不存在則會報錯: # with open('hello1.txt', 'r') as f: # print f.read() # 報錯的內容為:IOError: [Errno 2] No such file or directory: 'hello1.txt' # 報錯會提示你開啟的檔案不存在。 # (5)讀取檔案的方法的比較。 # 呼叫read()會一次性讀取檔案的全部內容, # 如果檔案有10G,記憶體就爆了,所以, # 要保險起見,可以反覆呼叫read(size)方法, # 每次最多讀取size個位元組的內容。 # 另外,呼叫readline()可以每次讀取一行內容, # 呼叫readlines()一次讀取所有內容並按行返回list。 # 因此,要根據需要決定怎麼呼叫。 # 如果檔案很小,read()一次性讀取最方便; # 如果不能確定檔案大小,反覆呼叫read(size)比較保險; # 如果是配置檔案,呼叫readlines()最方便: # 例如: with open('hello.txt', 'r') as f: print f.read(2) # 輸出的結果為:he # 注:英文字母一個佔一個位元組,中文一個佔兩個位元組。 # 讀取檔案最最常用的一種方法。 with open('hello.txt', 'r') as f: for line in f.readlines():#每次讀取一行 print(line.strip()) # 把每一個行的末尾的'\n'刪掉 # 輸出的結果: # hello wolrd # 你好啊 # (8)檔案的寫操作。 # fp.write(str) #把str寫到檔案中, # write()並不會在str後加上一個換行符 # fp.writelines(seq) #把seq的內容全部寫到檔案中 # (多行一次性寫入)這個函式也只是忠實地寫入,不會在每行後面加上任何東西。 with open('hello1.txt', 'w') as f: f.write("this is new content") # 寫入之後重新檢視文件內容 with open('hello1.txt', 'r') as f: for line in f.readlines(): # 每次讀取一行 print(line.strip()) # 把每一個行的末尾的'\n'刪掉 # 輸出的結果為:this is new content # 說明原來的內容已經被覆蓋掉了,這與文章的許可權有關。 #文章的許可權總結如下: # (1)r 開啟只讀檔案,該檔案必須存在。 # (2)r+ 開啟可讀寫的檔案,該檔案必須存在。 # (3)w 開啟只寫檔案,若檔案存在則檔案長度清為0, # 即該檔案內容會消失。若檔案不存在則建立該檔案。 # (4)w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零, # 即該檔案內容會消失。若檔案不存在則建立該檔案。 # (5)a 以附加的方式開啟只寫檔案。若檔案不存在, # 則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾, # 即檔案原先的內容會被保留。 # (6) a+ 以附加方式開啟可讀寫的檔案。 # 若檔案不存在,則會建立該檔案, # 如果檔案存在,寫入的資料會被加到檔案尾後, # 即檔案原先的內容會被保留。

加油一起學習,更新完畢