python-文件操做

基本的文件操做

什麼是文件

文件是操做系統爲用戶或應用程序提供的虛擬的單位,文件的操做的核心就是:讀/寫。緩存

爲何要有文件

數據都保存在硬盤中,咱們須要讀寫數據,就要去操做硬盤,而經過操做文件咱們就能夠操做硬盤。app

python 如何用文件

從硬盤中讀取數據

python中使用open(‘文件路徑’)方法能夠打開某個具體的文件,用open()打開文件後,咱們還須要手動釋放文件對操做系統的佔用。工具

f = open(r'C:\Users\raynd\Desktop\test.txt',encoding='gbk')  # r 表示後面的特殊字符,都是普通字符。 encoding='gbk',表明這個文件是用gbk編碼方式來打開,咱們須要記住,用什麼編碼方式寫的,就用什麼編碼方式打開。
print(f.read())
f.close() # 若是使用del f ,這個是刪除f這個變量名的內存佔用,並無關閉文件在操做系統中的佔用;而是用f.close後,不只刪除了變量名f,而且也關閉了文件,這個時候文件對於操做系統來說是關閉狀態的
1. 打開文件的那一瞬間是在操做硬盤和內存
2. python3能操控硬盤和內存嗎?必定不能,由於他是應用程序
3. 你看到的python3打開文件並操控,都是基於操做系統的
4. 而後你只是使用了del f,只是在刪除f這個變量名的內存佔用
5. 可是咱們歷來都沒有告訴操做系統關閉文件
6. 因此咱們必須使用f.close()關閉文件

若是使用文件(打開文件的步驟)

  1. 打開文件
  2. 讀寫數據
  3. 保存
  4. 關閉文件

絕對路徑和相對路徑

  • 絕對路徑:從根目錄開始,一直到須要的文件路徑。編碼

    ‘C:\Users\raynd\Desktop\test.txt’操作系統

  • 相對路徑:從當前文件夾開始,到須要的文件路徑,只須要輸入文件路徑,要打開的文件必須和運行的py文件必須得在一個文件夾下。code

    ‘test.txt內存

    rem

文件的三種打開方式

文件操做的基礎模式有三種

默認的操做模式爲r模式文檔

  • r模式爲read
  • w模式爲write
  • a模式爲append

文件讀寫內容的格式有兩種

默認的讀寫內容的模式爲b模式

  • t模式爲text
  • b模式爲bytes

注意:t、b這兩種模式均不能單獨使用,都須要與r/w/a之一連用,如:rt/rb/wt/at(經常使用),wb/ab(不經常使用)。

文件打開模式之r模式

  1. r:read ,只讀模式,只能讀,不能寫,文件不存在時報錯。
f = open(r'C:\Users\raynd\Desktop\test.txt',mode='r',encoding='gbk')
print(f.read()) # 一次性打印完全部,若是碰到數據比較大的時候,容易內存溢出。
666
帥刷刷
  1. f.read.line()

    f = open(r'C:\Users\raynd\Desktop\test.txt',mode='r',encoding='gbk')
    print(f.readline()) # 只打印一行
    print(f.readline())
    f.close()
    
    666
    
    帥刷刷
  2. ‘rb’模式

f = open(r'C:\Users\raynd\Desktop\test.txt',mode='rb') # 由於rb是字節模式,也是就二進制,因此不能再加入指定的字符編碼。
print(f.read())
b'666\r\n\xcb\xa7\xcb\xa2\xcb\xa2' #b表示,寫的字符串爲二進制,在打印的時候不須要使用終端的編碼處理,直接打印原生的二進制便可

文件打開模式之w模式

w:write,只能寫,不能讀,文件存在的時候會清空文件後再寫入內容;文件不存在的時候會建立文件後寫入內容。

w : write

fw = open(r'C:\Users\raynd\Desktop\test.txt',mode = 'w',encoding='gbk')
fw.write('ryan,全宇宙最流弊')
fw.close()

ryan,全宇宙最流弊

文件打開模式之a模式

a:append ,追加,文件存在,則在文件的末端寫入內容;文件不存在的時候會建立文件後寫入內容。

fa = open(r'C:\Users\raynd\Desktop\test.txt',mode = 'a',encoding='gbk')
data1=fa.write('\nrayn流弊666')
print(data1)

ryan,全宇宙最流弊
rayn流弊666

with管理文件操做上下文(文件的拷貝)

  1. 以前咱們用open()方法來操做文件,可是open打開文件後咱們還須要手動釋放文件對操做系統的佔用。可是其實爲咱們能夠更方便的打開文件,即便用python提供的上下文管理工具---with open().
with open(r'C:\Users\raynd\Desktop\test.txt',mode = 'r',encoding='gbk') as fr:
    data1 = fr.read()
    print(data1)

ryan,全宇宙最流弊
rayn流弊666
  1. with open()方法不只提供自動釋放操做系統的佔用,而且可以使用逗號分隔(, )一次性打開多個文件,實現文件的快速拷貝。
with open(r'C:\Users\raynd\Desktop\test.txt','r',encoding='gbk') as fr,\
    open(r'C:\Users\raynd\Desktop\test1.txt','w',encoding='gbk') as fw:
    fw.write(fr.read())

這樣在桌面會自動新建了test1.txt 文檔,裏面的內容就是新的test.txt的內容。

補充

咱們對文件作的內容修改,其實並非在原文件上進行的修改,而是每次修改都會新建一個新的文件,而後把修改後的內容放入進新建的文件,而後刪除原文件,再把新文件命名成原文件。這就是咱們在作word、Excel等文檔操做時,會有緩存文件,這個緩存文件就是新建的文件。

with open(r'test.txt','r',encoding='utf8') as fr,\
    open(r'test1.txt','w',encoding='utf8') as fw:
    data = fr.read()
    print(data)
    data1 = data.replace('ry','rayn')
    fw.write(data1)

import os
os.remove('test.txt')
os.rename('test1.txt','test.txt')

這樣test1.txt就替換成了test.txt

相關文章
相關標籤/搜索