檔案操作 08

2021-09-19 11:00:40 字數 2846 閱讀 4919

檔案操作

一 , 檔案的內部內容進行操作

1.open('檔案路徑',mode='模式(預設是唯讀)',encoding='編碼')

路徑必須寫上字尾(.txt等)

f = open('d:/小**.txt',mode='r',encoding='utf-8')

content = f.readlines()

line1 = f.readline().strip() # 空白, 空格,\t, \n

print(line1)

讀r 只能讀 不能寫

1.open('檔案路徑',mode='模式(預設是唯讀)',encoding='編碼')

路徑必須寫上字尾(.txt等)

f = open('d:/小**.txt',mode='r',encoding='utf-8')

content = f.readlines()

line1 = f.readline().strip() # 空白, 空格,\t, \n

print(line1)

f.close

f 是乙個可迭代物件

f = open('d:/周潤發大戰奧特曼.txt',mode='r',encoding='utf-8' )

for line in f : # 內部其實呼叫的是readline()

print(line)

f.close() # 一定記得寫上

寫w 只能寫 不能讀

f = open('d:/sylar.txt',mode='w',encoding='utf-8')

f.write('周筆暢\n')

f.write('胡辣湯\n')

f.write('實付款\n')

f.flush()

f.close()

f.write() # 先清空 再寫入

追加a 追加寫 只能寫入

f = open('d:/sylar.txt',mode='a',encoding='utf-8')

f.write('娃哈哈') # 追加寫

f.write('爽歪歪')

f.flush()

f.close()

b : bytes 這個時候處理檔案的是位元組

操作非文字檔案的時候用帶b的 在rb模式下,不能選擇encoding字符集

rbwb

ab檔案拷貝

f1 = open('d:/桌面背景.jpg',mode='rb')

檔案的路徑

1. 絕對路徑

1.從磁碟根目錄尋找

2.網路上路徑

2.相對路徑# 更推薦用相對路徑 因為把程式拷給別人用的時候.直接把專案考走就能執行,如果用絕對路徑.還需要拷外部檔案.

相對於當前你這個程式所在的資料夾.(用的最多的)

絕對路徑相對於相對路徑來說

r+ # 帶加號的使用頻率最高的 讀寫模式

讀寫模式

如果執行了讀操作 那麼寫操作的時候都是寫在檔案的末尾和游標沒關係

正確用法 先讀 後寫

w+很少用 需要移動游標

a+ 追加讀模式

f = open('選單',mode='a+',encoding='utf-8')

f.write('韭菜雞蛋餃子')

f.seek(0)

content = f.read()

print(content)

游標 使用 tell 可以知道 游標在** 單位

seek()可以移動游標

r: 預設游標在開頭

讀寫的時候單位是字元 但是游標移動的單位是位元組

游標移動到末尾 seek(0,2)

seek(偏移量,位置)

位置 : 0開頭 , 1當前位置 , 2末尾

truncate() 截斷檔案

f = open('我的天哪', mode='r+', encoding='utf-8')

f seek(9)

f.truncate(12) # 如果沒有引數. 按照游標來截斷. 如果有引數. 截斷到引數位置

f.flush()

f.close()

注意 : 在r+模式下.如果讀取了內容 . 不論讀取內容多少 , 游標顯示的是多少.再寫入或者操作檔案的時候都是在結尾進行的操作

所以如果想要截斷操作.要先挪動游標 挪動到想要截斷的位置,然後進行截斷,關於truncate(n),如果給了n則從頭開頭開始截斷, 如果不給n,則從當前位置截斷,後面的內容會被刪除.

二 , 修改檔案 過程 將檔案中的內容讀取到記憶體中將資訊修改完畢,然後將原始檔刪除,將新檔案的名字改為老檔案的名字.

語句為import os

with open('alex',mode='r',encoding='utf-8') as f1, \

open('alex_副本',mode='w', encoding='utf-8') as f2: # 這種寫法可以省去 f1.flush() f1.close() 語句

for line in f1:

new line = line.replace('good','sb')

f2.write(new line)

os.remove('alex')

os.rename('alex_副本','alex')

posted @

2018-09-24 16:25

你沒有想象的那麼重要 閱讀(

...)

編輯收藏

檔案操作 08

檔案操作的初識 f1 open e 乙個神秘的 txt encoding utf 8 mode r content f1.read print content f1.close 檔案操作的讀 r,rb r r b 四種模式 r read read n readline readlienes for ...

08 檔案操作

位元組流 inputstream和outputstream 過濾流 bufferedinputstream和bufferedoutputstream 過濾流用於給流增加乙個緩衝的功能,緩衝區越大,效率越高,典型的犧牲空間換時間 08.01.txt public class testtxt 寫入文字 ...

C語言之檔案操作08 總結

c程式的檔案操作 共涵蓋7個例題,包含格式列印,檔案讀取,條件查詢,矩陣的檔案操作,資料格式輸入及呼叫計算等內容。檔案操作使得程式有更強的拓展性,使其可以單獨儲存資料,這為程式的除錯和優化打下了堅實的基礎,為我們實現大規模計算提供了可能。至此,相信大家對檔案操作也有了比較好的認識,無非是寫入 讀取 ...