python中的文件处理_python学习——python中的文件处理
python對文件的處理。
python對文件的處理的兩個內建函數:
open()、file(),這個兩函數提供了初始化輸入\輸出(I\O)操作的通用接口。兩函數的功能相同。
基本用法:
file_object=open(filename, access_mode='r', buffering=-1)
file_object 是定義一個打開文件的對象
access_mode 是打開文件的模式;通常,文件使用模式 'r','w','a' 來打開,分別代表,讀取,寫入,追加。
'r' 模式打開已經存在的文件
'w' 模式打開的文件若存在則首先清空,再加入內容。
'a' 這個模式是追加內容到文件中
注. 'b' 模式這個是打開二進制文件,對于unix-like/unix類型的系統'b'模式是可有可無的。
buffering 訪問文件所采用的緩沖方式。其中0表示不緩沖,1表示只緩沖一行數據,任何其它大于1的值代表使用給定的值作為緩沖區大小。不給定此參數或者參數為負數都表示使用系統默認的緩沖機制。
常用的文件訪問方式如下:
r ? ? ? ?以讀方式打開
rU或Ua ? 以讀方式打開同時提供通用換行符支持
w ? ? ? ?以寫方式打開
a ? ? ? ?以追加方式打開
r+ ? ? ? 以讀寫方式打開
w+ ? ? ? 以讀寫方式打開
a+ ? ? ? 以讀寫方式打開
文件的輸入:
python中有三個方法來處理文件內容的輸入:
read() 一次讀取全部的文件內容。
readline() 每次讀取文件的一行。
readlines() 讀取文件的所有行,返回一個字符串列表。
分別舉例說明一下:
read():>>> f=open('f.sh')
>>> ff=f.read() #以read()方法取得文件全部內容。
>>> print ff
#!/bin/bash
for i in {a,test,bak};do
echo $i
done
>>>
readline():>>> f=open('f.sh')
>>> file=f.readline()
>>> print file
#!/bin/bash
>>>
每次打印都會顯示出文件內容的第一行,如要顯示文件的所有內容,則加一個while循環。如下所示:>>> while 1:
... file = f.readline()
... if file:
... print file
... else:
... break
...
for i in {a,test,bak};do
echo $i
done
>>>
這樣就顯示出文件的所有內容了。
readlines():>>> f=open('f.sh')
>>> file=f.readlines()
>>> print file
['#!/bin/bash \n', 'for i in {a,test,bak};do\n', '\techo $i\n', 'done\n'] #文件內容以字符串列表的形式顯示出來。
如果要正常的顯示出文件來可以用eachLine這個參數,此參數代表文本文件的一行(包括末尾的換行符)>>> for eachLine in file:
... if eachLine:
... print eachLine
... else:
... print "failed"
...
#!/bin/bash
for i in {a,test,bak};do
echo $i
done
>>>
也可以這樣來讀取文件內容:>>> f=open('f.sh')
>>> file = f.readlines()
>>> print file
['#!/bin/bash \n', 'for i in {a,test,bak};do\n', '\techo $i\n', 'done\n']
>>> for i in range(len(file)):
... print file[i]
...
#!/bin/bash
for i in {a,test,bak};do
echo $i
done
>>>
下面來說一下文本文件的輸出 write.先看一下例子:>>> f=open('a', 'w')
>>> s = 'This is a new line.'
>>> f.write(s)
>>> f.close()
來讀取一下這個剛創建的文件
>>> f=open('a')
>>> file=f.read()
>>> print file
This is a new line.
>>>
再來說一下python中在文本文件內容移動的操作,主要是用到seek()這個函數。以例子說明一下: >>> f = open('a', 'w+') #'w+' 表示,文件以可讀可寫模式打開。
>>> f.tell() #用tell()方法來記錄打開文件的位置。初始的位置0
0
>>> f.write('test line 1\n') #向文件中寫入新的一行。
>>> f.tell()
12 #顯示出移動的位置。
>>> f.write('test line 2\n') #再向文件中加入新的一行。
>>> f.tell()
24 #顯示出移動的位置。
>>> f.seek(-12,1) #向后移動12個字節的位置。應該移動到文件內容的第二行的開頭
>>> f.tell()
12
>>> f.readline() #用readline()方法讀取當前位置時的文件內容。
'test line 2\n' #顯示的是文件的第二行,可見readline()方法讀取的是當前位置以后的內容。
>>> f.seek(0,0) #回到文件的開始位置
>>> f.readline()
'test line 1\n' # 顯示文件的第一行。
>>> f.tell()
12 #此時位置在第二行的開始處。
>>> f.readline()
'test line 2\n'
>>> f.tell()
24 #此時又到了文件第三行的開始處了。
>>> f.close()
這里只是記錄了python處理文本文件的簡單運行方法,python對文件的處理還有很多特性,需要進一步的學習和運用。。。。^_^
、
總結
以上是生活随笔為你收集整理的python中的文件处理_python学习——python中的文件处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用自动阈值话处理SVM棋盘
- 下一篇: Jquery获取了元素