python基礎(chǔ)之文件的備份以及定位
小型文件備份
# 文件的備份
def copyFile():
# 接收用戶輸入的文件名
old_file=input('請(qǐng)輸入要備份的文件名:')
file_list=old_file.split('.')
# 構(gòu)造新的文件名.加上備份的后綴
new_file=file_list[0]+'_備份.'+file_list[1]
old_f=open(old_file,'r') #打開(kāi)需要備份的文件
new_f=open(new_file,'w') #以寫的模式去打開(kāi)新文件,不存在則創(chuàng)建
content=old_f.read() #將文件內(nèi)容讀取出來(lái)
new_f.write(content) #將讀取的內(nèi)容寫入備份文件
old_f.close()
new_f.close()
pass
copyFile()


備份大型文件
# 文件的備份
def copyFile():
# 接收用戶輸入的文件名
old_file=input('請(qǐng)輸入要備份的文件名:')
file_list=old_file.split('.')
# 構(gòu)造新的文件名.加上備份的后綴
new_file=file_list[0]+'_備份.'+file_list[1]
try:
# 監(jiān)視iu處理邏輯
with open(old_file,'r') as old_f,open(new_file,'w')as new_f:
while True:
content=old_f.read(1024) #一次處理1024字節(jié)
new_f.write(content)
if len(content)<1024:
break
except Exception as msg:
print(msg)
pass
copyFile()

# tell 返回指針當(dāng)前所在的位置
with open('Test.txt','r') as f:
print(f.read(3))
print(f.tell()) #讀取三個(gè)字,每個(gè)漢字占兩個(gè)字節(jié),光標(biāo)當(dāng)前位置為6
print(f.read(2))
print(f.tell()) #共讀取五個(gè)字,光標(biāo)位置為10

# truncate 可以對(duì)源文件進(jìn)行截取操作
fobjB=open('Test.txt','r')
print(fobjB.read())
fobjB.close()
print('截取之后的數(shù)據(jù)')
fobjA=open('Test.txt','r+')
fobjA.truncate(15)
print(fobjA.read())



# seek 控制光標(biāo)所在的位置
with open('Test_備份.txt ','rb') as f:
data=f.read(2) #按照二進(jìn)制法則讀取 兩個(gè)字符即一個(gè)漢字
print(data.decode('gbk'))
f.seek(-2,1) #相當(dāng)于光標(biāo)又到了0的位置 -代表往回便宜 1代表從當(dāng)前位置開(kāi)始 2代表從末尾開(kāi)始讀
print(f.read(4).decode('gbk'))
f.seek(-6,2)
print(f.read(2).decode('gbk')) #從末尾開(kāi)始向前偏移6個(gè) 讀取兩個(gè)字節(jié)

對(duì)于用r這種模式打開(kāi)文件 在文本文件中,沒(méi)有使用二進(jìn)制的選項(xiàng)打開(kāi)文件 只允許從文件你的開(kāi)頭計(jì)算相對(duì)位置,從文件尾部計(jì)算或者當(dāng)前計(jì)算的話就會(huì)引發(fā)異常
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理
ipaddress庫(kù)提供了處理IPv4與IPv6網(wǎng)絡(luò)地址的類。這些類支持驗(yàn)證,查找網(wǎng)絡(luò)上的地址和主機(jī),以及其他常見(jiàn)的操作,本文就來(lái)介紹一下這些方法的使用,感興趣的一起來(lái)了解一下2021-06-06
Python?pygame派生精靈和精靈組創(chuàng)建敵機(jī)
這篇文章主要為大家介紹了Python?pygame派生精靈和精靈組創(chuàng)建敵機(jī)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子
這篇文章主要介紹了實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Pyramid Mako模板引入helper對(duì)象的步驟方法
ylons中的mako模板,默認(rèn)會(huì)引入一個(gè)helper對(duì)象,我們可以在里面擴(kuò)展方法,應(yīng)對(duì)在模板輸出時(shí)候會(huì)常用的操作,那么在Pyramid中如何默認(rèn)引入同樣的輔助類到模板中2013-11-11
詳解如何使用Pandas處理時(shí)間序列數(shù)據(jù)
時(shí)間序列數(shù)據(jù)在數(shù)據(jù)分析建模中很常見(jiàn),例如天氣預(yù)報(bào),空氣狀態(tài)監(jiān)測(cè),股票交易等金融場(chǎng)景,本文給大家詳細(xì)介紹了如何使用Pandas處理時(shí)間序列數(shù)據(jù),文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-01-01
Python?Tkinter?Gui運(yùn)行不卡頓(解決多線程解決界面卡死問(wèn)題)
最近寫的Python代碼不知為何,總是執(zhí)行到一半卡住不動(dòng),所以下面這篇文章主要給大家介紹了關(guān)于Python?Tkinter?Gui運(yùn)行不卡頓,解決多線程解決界面卡死問(wèn)題的相關(guān)資料,需要的朋友可以參考下2023-02-02

