2019-09-19-22:11:33
今天是自學(xué)Python的第九天
學(xué)的內(nèi)容是有關(guān)文件操作的,如:r、w、a、rb、wb、ab、r+、w+、a+等
有大牛幫我看一下我的代碼第一個(gè)有沒有什么弊端嗎?我感覺好像沒有,但是看視頻時(shí),說不建議這樣做
一.重要知識(shí)點(diǎn)
文件操作:
1. r
讀取完的文件句柄?定要關(guān)閉.f.close()
2. w
寫的時(shí)候注意.如果沒有文件.則會(huì)創(chuàng)建文件,如果文件存在.則將原件中原來的內(nèi)容刪除,再寫入新內(nèi)容
寫入是從光標(biāo)處開始寫入
3. a
此模式下,寫入的內(nèi)容會(huì)追加到文件末尾
4. r+
讀寫模式.必須先讀后寫
需要移動(dòng)光標(biāo)進(jìn)行反復(fù)讀寫
注意:在r+模式下.如果讀取了內(nèi)容.不論讀取內(nèi)容多少.光標(biāo)顯示的是多少.
再寫入或者操作文件的時(shí)候都是在結(jié)尾進(jìn)行的操作.
5. w+(很少用)
6. a+(此模式下不管是先讀還是后讀都無法讀取內(nèi)容)
7. b bytes 讀寫操作的是字節(jié). 用在非文本上
8. seek() 移動(dòng)光標(biāo)到xx位置,移動(dòng)的單位是byte
開頭: seek(0), 末尾: seek(0,2)
9. 文件修改
創(chuàng)建新文件. 把修改后的內(nèi)容寫入新文件. 刪除老文件. 重命名新文件
import os
os.remove("")刪除文件
os.rename("源文件", "新文件名") 重命名文件
for line in f:
line 一行數(shù)據(jù)
with open("文件名") as f:
不需要關(guān)閉文件句柄,會(huì)自動(dòng)關(guān)閉
二.錯(cuò)誤總結(jié)
1.for循環(huán)和while循環(huán)嵌套問題
lst=[5,2,8,11,9,10,21,3,13]
i=0
while i
for el in range(len(lst)-1):
if lst[el]>lst[el+1]:
lst[el],lst[el+1]=lst[el+1],lst[el]
i=i+1
print(lst)
#上面代碼是自己敲的,好像沒錯(cuò),但是看視頻說下面的方法比較適合,有點(diǎn)不懂.因?yàn)槲矣X得下面的代碼我容易忘把i=0放進(jìn)for循環(huán)下
lst=[5,2,8,11,9,10,21,3,13]
i=0 #沒考慮到要把i=0放進(jìn)for循環(huán)中去
for el in range(len(lst)):
while i
if lst[i]>lst[i+1]:
lst[i],lst[i+1]=lst[i+1],lst[i]
i=i+1
print(lst)
#不同循環(huán)還是沒有考慮到嵌套之間的關(guān)系
解決方法:要再了解不同循環(huán)的用法,然后總結(jié)它們之間的聯(lián)系.
lst=[5,2,8,11,9,10,21,3,13 ] i = 0 while i< len(lst): for el in range(len(lst)-1 ): if lst[el]>lst[el+1 ]: lst[el],lst[el +1]=lst[el+1 ],lst[el] i =i+1 print (lst) lst =[5,2,8,11,9,10,21,3,13 ] for el in range(len(lst)): i = 0 while i: if lst[i]>lst[i+1 ]: lst[i],lst[i +1]=lst[i+1 ],lst[i] i =i+1 print (lst)
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
