python之文件處理

一.基礎操做html

1.打開文件python

 f = open(文件路徑,打開方式,編碼模式) #打開文件並返回操做對象緩存

 

 

打開方式編碼

說明 注意
'r' 只讀方式 文件必須存在
'w' 只寫方式

文件不存在則建立文件spa

文件存在則清空文件命令行

'a' 追加方式 文件不存在建立文件
'r+'/'w+' 讀寫方式  
'a+' 追加和讀寫方式  

 

 

 

 

 

 

 

 

 

 

 

 

2.讀取文件指針

f.read() #不加參數默認讀取整個文件 例如:read(1024) #讀取1024個字節htm

f.readline() #不加參數默認讀取一行對象

f.readlines()#讀取buffer字節大小的內容 ,返回每一行所組成的列表blog

iter #使用迭代器讀取文件,讀取全部內容

例子:

  iter_f = iter(f)

  lines = 0

  for line in iter_f :

    f.read(line) #一行行讀取

    lines += 1

  return lines #一共多少行

3.文件寫入與寫緩存

f.write(str) #將字符串寫入文件

f.writelines(sequences_of_strings) #寫多行到文件,參數爲可迭代對象

注意:寫以後,直接查看文件,會發現內容並無被寫到文件裏,由於此時內容還在緩存中,並無寫到磁盤上

解決方法:

(1)主動調用close()或者flush方法,寫緩存同步到磁盤;(2)寫入數據量大於或者等於緩存,寫緩存同步到磁盤

4.文件關閉

f.close()

爲何須要關閉?

(1)將寫緩存同步到磁盤;(2)Linux系統中每一個進程打開文件的個數是有限的;(3)若是打開文件數到了系統限制,再打開文件就會失敗

5.文件指針

寫入與讀取的問題

(1)寫入文件後,必須打開才能讀取寫入內容

(2)讀取文件後,沒法從新再次讀取讀過內容

文件指針移動的過程:

 

文件指針操做方法:

seek(偏移量,相對偏移位置)

指針定位方式:

os.SEEK_SET:相對文件起始位置 0

os.SEEK_CUR:相對文件當前位置 1

os.SEEK_END:相對文件結尾位置 2

使用例子:

f.seek(0,os.SEEK_SET)  #文件指針回到起始位置

f.seek(0,os.SEEK_END)  #文件指針指到文件結尾

f.seek(-5,os.SEEK_CUR)  #指針從當前位置向前偏移5個位置

f.tell() #查看指針當前所指位置

二.文件屬性以及OS模塊使用

1.文件屬性

(1)屬性方法

f.fileno()#文件描述符

f.mode#文件打開權限,只讀、只寫、讀寫等

f.encoding #文件編碼格式

f.closed#文件是否關閉

(2)標準文件

標準輸入:sys.stdin 標準輸出:sys.stdout 標準錯誤:sys.stderr

(3)文件命令行參數

執行程序時,能夠根據參數不一樣完成不一樣功能

sys模塊提供sys.argv屬性,經過該屬性能夠獲得命令行參數,sys.argv是字符串組成的列表

python a.py 參數名

2.編碼格式

這篇博文講解很詳細

 http://www.javashuo.com/article/p-ksoeayae-do.html

 

3.LINUX文件系統

文件包括:磁盤(ext2.ext4)文件,NFS文件系統,各類外設(sd卡,USB設備)等

 

4.OS模塊對文件和目錄操做

(1)OS模塊

使用os模塊打開文件

os.open(文件名,打開方式,)  

打開方式:os.O_CREAT(建立文件) os.O_RDONLY(只讀方式) os.O_WRONLY(只寫方式) os.O_RDWR(讀寫方式)

使用os模塊對文件進行操做

os.read(文件描述符,buffersize) #讀取文件

os.write(文件描述符,string)#寫入文件

os.lseek(文件描述符,pos,how) #文件指針操做

os.close(文件描述符) #關閉文件

例子

f = os.open('文件路徑',os.O_CREAT|os.O_RDWR) #建立文件

n = os.write(f,'hello') #將hello寫入文件

l = os.lseek(f,0,os.SEEK_SET)#返回當前指針的位置,此時l的值應該爲0

str1 = os.read(f,5) #讀取5個字節,此時str1爲hello

os.close(f) #關閉

(2)OS模塊對文件操做的方法

 

舉例:

 os.access('文件路徑名稱',os.F_OK) #文件存在,則返回True不然返回False

os.access('文件路徑名稱',os.W_OK) #文件可寫,則返回True不然返回False

os.listdir('./') #顯示當前文件文件目錄下的全部路徑

其餘方法使用方法相似

(3)os模塊對路徑的操做

相關文章
相關標籤/搜索