檔案處理seek以及修改內容的兩種方式

2022-05-29 08:30:23 字數 1702 閱讀 4127

f.seek(offset,whence)

offset代表檔案的指標的偏移量,單位是位元組bytes

whence代表參考物,有三個取值

# 0:參照檔案的開頭

# 1:參照當前檔案指標所在位置

# 2: 參照檔案末尾

# ps:快速移動到檔案末尾f.seek(0,2)

#強調:其中whence=1和whence=2只能在b模式下使用

f=open('c.txt',mode='rt',encoding='utf-8')

# f.seek(9,0) 每3個位元組是乙個漢字

print(f.tell()) # 每次統計都是從檔案開頭到當前指標所在位置

# print(f.readline())

f.close()

# 了解(**)

# 只有在t模式下的read(n),n代表的是字元個數,除此之外其他但凡涉及檔案指標的移動都是以位元組為單位的

# f=open('c.txt',mode='rt',encoding='utf-')

# print(f.read(3))

# f.close()

# f=open('c.txt',mode='rb',)

# print(f.read(3).decode('utf-8'))

# f.close()

# ab a+b r+b

f=open('b.txt',mode='at',)

f.truncate(9) # 參照物永遠是檔案開頭

f.close()

#修改檔案內容的方式一:

#思路:先將原檔案內容一次性全部讀入記憶體,然後在記憶體修改完畢後,再

#覆蓋寫回原檔案

#優點:在修改期間,檔案內容只有乙份

#缺點:當檔案過大的情況下或占用過多的記憶體空間

# with open('d.txt','rt',encoding='utf-8') as read_f:

# msg=read_f.read()

# msg=msg.replace('alex','xiang')

# # print(msg)

## with open('d.txt','wt',encoding='utf-8') as write_f:

# write_f.write(msg)

#修改檔案內容的方式二:

#思路:

#1、以讀的方式開啟原檔案,以寫的方式開啟乙個新檔案

#2、從原檔案中迴圈讀取每一行內容修改後寫入新檔案

#3、刪除原檔案,將新檔案重新命名為原檔案的名字

#優點:同一時刻只有一行內容存在於記憶體中

#缺點:在修改期間,檔案內容始終存在兩份,但修改完畢後會只留乙份

import os

with open('d.txt','rt',encoding='utf-8') as read_f,\

open('d.txt.swap','wt',encoding='utf-8') as write_f:

for line in read_f:

write_f.write(line.replace('xiang','alexsb'))

os.remove('d.txt') # 刪除老檔案

os.rename('d.txt.swap','d.txt')

檔案內容的修改

1.第一種修改方式 將檔案的內容全部載入到記憶體中進行修改,改完後載入到硬碟。1 usr bin env python2 encoding utf 8 34 f open file old file.txt mode r encoding utf 8 56 old str 我們 7 new str ...

修改檔案內容

import os def fetch data print 使用者查詢資料 s data backend data backend data n 讀取的文字有換行符,需要做下拼接 with open haproxy.conf r encoding utf 8 as read file 使用with...

用python修改檔案內容修改txt內容的3種方法

用python修改檔案內容修改txt內容的3種方法 方法一 修改原檔案方式 def updatefile file old str,new str 替換檔案中的字串 param file 檔名 param old str 就字串 param new str 新字串 return file data ...