<3>讀資料(readlines)
就像read沒有引數時
⼀
樣,readlines可以按照⾏
的⽅
式把整個⽂
件中的內容進⾏⼀
次性讀取,並且返回的是⼀
個列表,其中每⼀⾏
的資料為⼀
個元素#coding=utf-8
f = open('test.txt', 'r') content = f.readlines() print(type(content))
i=1
for temp in content: print("%d:%s"%(i,temp)) i+=1
f.close()
運
⾏
現象:<4>讀資料(readline)
#coding=utf-8
f = open('test.txt', 'r')
content = f.readline() print("1:%s"%content)
content = f.readline() print("2:%s"%content)
f.close()
想⼀想:
如果⼀個⽂件很⼤,⽐如5G,試想應該怎樣把⽂件的資料讀取到記憶體然後進⾏處理呢?
應⽤1:製作⽂件的備份
任務描述
輸⼊⽂件的名字,然後程式⾃動完成對⽂件進⾏備份
參考程式碼
# 提示輸⼊⽂件
oldFileName =input("請輸⼊要拷⻉的⽂件名字:")
以讀的⽅式開啟⽂件
oldFile =open(oldFileName,'rb')
# 提取⽂件的字尾
fileFlagNum = oldFileName.rfind('.')if fileFlagNum > 0:
fileFlag = oldFileName[fileFlagNum:]
# 組織新的⽂件名字
newFileName =oldFileName[:fileFlagNum] + '[復件]' + fileFlag
# 建立新⽂件
newFile =open(newFileName, 'wb')
# 把舊⽂件中的資料,⼀⾏⼀⾏的進⾏複製到新⽂件中
for lineContentin oldFile.readlines():newFile.write(lineContent)
# 關閉⽂件oldFile.close() newFile.close()
⽂件的定位讀寫
f = open("123.txt", "w+")
f.write("helloworld") content = f.read()
print(content) # 為什麼列印不出內容?
<1>獲取當前讀寫的位置
在讀寫⽂件的過程中,如果想知道當前的位置,可以使⽤tell()來獲取
# 開啟⼀個已經存在的⽂件
f = open("test.txt", "r") str = f.read(3)
print "讀取的資料是 : ", str
# 查詢當前位置
position =f.tell()
print "當前⽂件位置 : ", position
str = f.read(3)
print "讀取的資料是 : ", str
# 查詢當前位置
position =f.tell()
print "當前⽂件位置 : ", position
f.close()
<2>定位到某個位置
如果在讀寫⽂件的過程中,需要從另外⼀個位置進⾏操作的話,可以使⽤seek() seek(offset, from)有2個引數
offset:偏移量
from:⽅向
demo:把位置設定為:從⽂件開頭,偏移5個位元組
如果在讀寫⽂件的過程中,需要從另外⼀個位置進⾏操作的話,可以使⽤seek() seek(offset, from)有2個引數
offset:偏移量 from:⽅向
demo:把位置設定為:從⽂件開頭,偏移5個位元組
demo:把位置設定為:離⽂件末尾,3位元組處
# 開啟⼀個已經存在的⽂件
f = open("test.txt", "r")
# 查詢當前位置
position =f.tell()
print "當前⽂件位置 : ", position
# 重新設定位置
f.seek(-3,2)
# 讀取到的資料為:⽂件最後3個位元組資料
str = f.read()
print "讀取的資料是 : ", str
f.close()
更多學習資料可關注:gzitcast