從python初級(jí)到python高級(jí)的過(guò)度,首先要理解file的作用是什么?
使用文件的作用:就是把一些存儲(chǔ)存放起來(lái)梗顺,可以讓程序下一次執(zhí)行的時(shí)候直接使用,而不必重新制作一份车摄,省時(shí)省力寺谤。
一、文件的打開(kāi)與關(guān)閉
如果想用word編寫(xiě)一份簡(jiǎn)歷,應(yīng)該有哪些流程呢?
1吮播、打開(kāi)word軟件变屁,新建一個(gè)word文件
2、寫(xiě)入個(gè)人簡(jiǎn)歷信息
3意狠、保存文件
4粟关、關(guān)閉word軟件
同樣,在操作文件的整體過(guò)程與使用word編寫(xiě)一份簡(jiǎn)歷的過(guò)程是很相似的
1摄职、打開(kāi)文件誊役,或者新建一個(gè)文件
2获列、讀寫(xiě)數(shù)據(jù)
3谷市、關(guān)閉文件
打開(kāi)文件
在python中,使用open函數(shù)击孩,可以打開(kāi)一個(gè)已經(jīng)存在的文件迫悠,或者創(chuàng)建一個(gè)新文件
open(文件名,訪(fǎng)問(wèn)模式)
f = open('test.txt','w')
關(guān)閉文件
close()巩梢、
二创泄、文件的讀寫(xiě)
寫(xiě)數(shù)據(jù)
使用write()可以完成向文件寫(xiě)入數(shù)據(jù)
f = open('test.txt','w')
f.write('hello world')
讀數(shù)據(jù)(read) 讀單個(gè)長(zhǎng)度
使用read(num)可以從文本中讀取數(shù)據(jù),num表示要從文件中讀取的數(shù)據(jù)的長(zhǎng)度(單位是字節(jié))括蝠,如果沒(méi)有傳入num鞠抑,那么就表示讀取文件中所有的數(shù)據(jù)
讀數(shù)據(jù)(readlines) 讀所有行
就像read沒(méi)有參數(shù)時(shí)一樣,Readlines可以按照行的方式把整個(gè)文件中的內(nèi)容一次性讀取忌警,并且返回的是一個(gè)讀數(shù)據(jù)(readline)讀一行列表搁拙,其中每一行的數(shù)據(jù)為一個(gè)元素
例題:f = open('test.txt', 'r')
? ? ? ? ? content = f.read(5) ? /讀前五的內(nèi)容。
三、文件的定位讀寫(xiě)
獲取當(dāng)前讀寫(xiě)的位置
在讀寫(xiě)文件的過(guò)程中箕速,如果想知道當(dāng)前的位置酪碘,可以使用tell()來(lái)獲取
例題:打開(kāi)一個(gè)已經(jīng)存在的文件
? ? f = open("test.txt", "r")
? ? str = f.read(3)
? ? print "讀取的數(shù)據(jù)是 : ", str
? ? # 查找當(dāng)前位置
? ? position = f.tell()
? ? print "當(dāng)前文件位置 : ", position
定位到某個(gè)位置
如果在讀寫(xiě)文件的過(guò)程中,需要從另外一個(gè)位置進(jìn)行操作的話(huà)盐茎,可以使用seek()
seek(offset, from)有2個(gè)參數(shù)
offset:偏移量
from:方向
0:表示文件開(kāi)頭
1:表示當(dāng)前位置
2:表示文件末尾
四兴垦、類(lèi)與對(duì)象
我們?cè)谧瞿承╉?xiàng)目是
要先大致的場(chǎng)景以及行為屬性過(guò)一遍。
1字柠、先定義有多少類(lèi):用class定義一個(gè)類(lèi)? 例定義一個(gè)學(xué)生類(lèi):
class? Student:
2探越、然后定義類(lèi)的屬性即行為:
大致定義學(xué)生的幾個(gè)初始屬性
由用戶(hù)自己輸入
def? __init__(self,name ,age,sex): ? ? ? ? ? ? ? ? ? ? ??
? ? ? ?? self.name=name
? ? ? ?? self.age=age
? ? ? ?? self.sex=sex
用str返回信息
def ? __str__(self):
? ? ?? return? '此學(xué)生的姓名是:'+self.name+'年齡是:'+self.age+'性別是:'+self.sex
3、創(chuàng)建一個(gè)學(xué)生的對(duì)象:給定實(shí)參募谎,也可以用input用戶(hù)輸入
xiao_ming=Student('小明',20,'男')
在輸出xiaoming的信息
print(xiaoming)
單繼承的運(yùn)用可以有效的提高函數(shù)使用率:
class? Banji: ? #為父類(lèi)
class Student(Banji):#為子類(lèi)
單繼承就是可以子類(lèi)可以使用父類(lèi)的內(nèi)容也可以說(shuō)是屬性:
說(shuō)明:
雖然子類(lèi)沒(méi)有定義init方法扶关,但是父類(lèi)有,所以在子類(lèi)繼承父類(lèi)的時(shí)候這個(gè)方法就被繼承了数冬,所以只要?jiǎng)?chuàng)建Bosi的對(duì)象节槐,就默認(rèn)執(zhí)行了那個(gè)繼承過(guò)來(lái)的init方法
總結(jié)
子類(lèi)在繼承的時(shí)候,在定義類(lèi)時(shí)拐纱,小括號(hào)()中為父類(lèi)的名字
父類(lèi)的屬性铜异、方法,會(huì)被繼承給子類(lèi)