open的幾種模式
r 以讀方式開啟
w 以寫方式開啟
a 以追加模式開啟
r+ 以讀寫模式開啟
w+ 以讀寫模式開啟
a+ 以讀寫模式開啟
rb 以二進位制讀模式開啟
wb 以二進位制寫模式開啟
ab 以二進位制追加模式開啟
rb+ 以二進位制讀寫模式開啟
wb+ 以二進位制讀寫模式開啟
ab+ 以二進位制讀寫模式開啟
使用'w',檔案若存在,首先要清空,然後重新建立,
使用'a'模式,把所有要寫入檔案的資料都追加到檔案的末尾,即使你使用了seek()指向檔案的其他地方,如果檔案不存在,將自動被建立。
開啟檔案
>>> f = open('test.txt', 'r')
一次全部讀取
>>> f.read()
'111111111111\n2222222\n33333333\n44444444\n555555555\n66666666666666\n'
檢視當前所在檔案位置
>>> f.tell()
回到檔案開頭
>>> f.seek(0)
>>> f.tell()
每次讀取一行
>>> f.readline()
'111111111111\n'
>>> f.readline()
'2222222\n'
>>> f.readline()
'33333333\n'
返回檔案的下一行,或在沒有其他行時引發stopiteration異常
>>> f.next()
'66666666666666\n'
>>> f.next()
traceback (most recent call last):
file "", line 1, in
stopiteration
全部讀取
>>> f.seek(0)
>>> f.tell()
>>> f.readlines()
['111111111111\n', '2222222\n', '33333333\n', '44444444\n', '555555555\n', '66666666666666\n']
檢視檔案名字
>>> f.name
'test.txt'
關閉檔案
>>> f.close()
python引入了with語句來自動幫我們呼叫close()方法,不必使用f.close()
你可以反覆呼叫write()來寫入檔案,但是務必要呼叫f.close()來關閉檔案。當我們寫檔案時,作業系統往往不會立刻把資料寫入磁碟,而是放到記憶體快取起來,空閒的時候再慢慢寫入。只有呼叫close()方法時,作業系統才保證把沒有寫入的資料全部寫入磁碟。
忘記呼叫close()的後果是資料可能只寫了一部分到磁碟,剩下的丟失了。所以,還是用with語句保險。
>>> with open('test.txt', 'r') as f:
... print f.read()
二進位制檔案
'\xff\xd8\xff\xe1\x00\x18exif\x00\x00...' # 十六進製制表示的位元組
strip()的用法,把每一行末尾的換行符\n去掉
[root@python ~]# cat readlines.py
#!/usr/bin/env python
#file readlines
f = open('/root/test.txt', 'r')
for line in f.readlines():
print line.strip()
f.close()
[root@python ~]# python readlines.py
檔案寫入
如果不存在who.txt,檔案將會被建立;如果存在,who.txt的內容將會被覆蓋
>>> f.close()
>>> f = open('who.txt', 'w+')
>>> f.write('bob pts/2 192.168.153.1\n')
>>> f.tell()
>>> f.close()
python 寫檔案換行
writelines 寫入檔案不會預設換行 file path c tt pyresult.txt str list 11 22 33 f open file path,w f.writelines str list 呼叫writelines方法 檔案結果 112233 需要顯示的加入換行標記 fi...
python寫入檔案自動換行問題
現在需要乙個寫檔案方法,將selenium的指令碼執行結果寫入test result.log檔案中 首先建立寫入方法 def write result str writeresult file r d eclipse4.4.1 script my selenium model test result...
python去掉txt檔案行尾換行
誤區 例項 對於原始檔案 使用以下語句只是對讀出的內容刪除了行尾的換行符,而不是真正將修改的結果寫入到原始的檔案中。filename text.txt with open filename,r as f print open ok for line in f.readlines for a in l...