首页
/
每日頭條
/
科技
/
文件的九個基本存取權限
文件的九個基本存取權限
更新时间:2024-11-17 17:55:48

文件的九個基本存取權限?文件操作中最基本的當然屬于文件的讀寫操作當我們利用爬蟲抓取到一堆數據時,就需要進行文件寫操作,将數據寫入到文件當中;當我們需要對抓取到的文件内容進行篩選,獲取有效信息時,需要對文件進行讀操作本文将介紹文件操作的一些基本内容,助您更高效的處理文件,我來為大家科普一下關于文件的九個基本存取權限?以下内容希望對你有幫助!

文件的九個基本存取權限(文件操作的一些基本内容)1

文件的九個基本存取權限

文件操作中最基本的當然屬于文件的讀寫操作。當我們利用爬蟲抓取到一堆數據時,就需要進行文件寫操作,将數據寫入到文件當中;當我們需要對抓取到的文件内容進行篩選,獲取有效信息時,需要對文件進行讀操作。本文将介紹文件操作的一些基本内容,助您更高效的處理文件。

打開和關閉文件

文件的打開模式多種多樣,就像“條條道路通羅馬”一樣,每一種模式都可以用來打開文件,但是由于“道路”的不同,它們對于打開後文件内容的處理方式不一樣。相比來說文件的關閉模式就簡單得多了。

文件的打開模式

表格内列出了一些常見的文件打開模式以及它對于文件的作用。

模式

描述

b

以二進制模式打開文件。

以讀寫模式打開一個文件。

r

以隻讀方式打開文件,打開後文件的指針将會放在文件的開頭。

rb

以二進制格式打開一個文件用于隻讀,文件指針将會放在文件的開頭。

r

以讀寫模式打開一個文件,文件指針将會放在文件的開頭。

rb

以二進制格式打開一個文件用于讀寫,文件指針将會放在文件的開頭。

w

以寫模式打開一個文件,如果該文件已存在則打開文件,删除原有文件内容并從開頭開始編輯,如果該文件不存在,則創建新文件。

wb

以二進制格式打開一個文件隻用于寫入,如果該文件已存在則打開文件,删除原有文件内容并從開頭開始編輯,如果該文件不存在,則創建新文件。

w

以讀寫模式打開一個文件,如果該文件已存在則打開文件,删除原有文件内容并從開頭開始編輯,如果該文件不存在,則創建新文件。

wb

以二進制格式打開一個文件用于讀寫,如果該文件已存在則打開文件,删除原有文件内容并從開頭開始編輯,如果該文件不存在,則創建新文件。

a

以追加模式打開一個文件,如果該文件已存在,文件指針将會放在文件的結尾,将新内容寫入到已有内容之後,如果該文件不存在,創建新文件進行寫入。

ab

以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針将會放在文件的結尾,将新内容寫入到已有内容之後,如果該文件不存在,創建新文件進行寫入。

a

以追加模式打開一個文件,如果該文件已存在,文件指針将會放在文件的結尾,将新内容寫入到已有内容之後,如果該文件不存在,創建新文件進行寫入。

ab

以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針将會放在文件的結尾,将新内容寫入到已有内容之後,如果該文件不存在,創建新文件進行寫入。

簡單總結起來就是: r (read)讀取,w (write)寫入,a (add)追加,配上 後可讀可寫。

Python 内置文件打開和關閉函數

open(file, mode=‘r’, buffering=-1, encoding=None),文件打開函數,返回一個 file 對象,從而可以對文件進行讀寫操作。

  • file,要訪問的文件名稱,是一個字符串值,比如:’python-100.txt’,或者可以包含文件路徑,即’C:\Users\Desktop\python-100.txt’。

  • mode,決定了文件的打開模式,默認是 ‘r’ 隻讀模式。

  • buffering,如果 buffering 的值被設為 0,就不會有寄存。如果 buffering 的值取 1,訪問文件時會寄存行。如果将 buffering 的值設為大于 1 的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。

  • encoding,對文件的内容進行編碼,比如采用 ‘utf-8’ 編碼方法。

    close(),文件關閉函數,沒有返回值,用于關閉一個已打開的文件,關閉後的文件不能再進行讀寫操作。

  • close() 函數沒有參數。

    open() close() 模式

    每一個文件打開 open() 函數必須搭配一個文件關閉函數 close(),這樣養成一個良好的編碼習慣。

    示例:

    # 打開 'python-100.txt' 文件,如果文件不存在會在程序文件 *.py 所在的目錄下創建該文件。 file = open('python-100.txt', 'w') print('測試1:python-100.txt 文件已打開。') # 關閉已打開的 'python-100.txt' 文件 file.close() print('測試1:python-100.txt 文件已關閉。') # 打開 'C:\Users\Desktop\py' 路徑下的 'python-100.txt' 文件。 file = open('C:\\Users\\Desktop\\py\\python-100.txt', 'w') print('測試2:python-100.txt 文件已打開。') # 關閉已打開的 'python-100.txt' 文件 file.close() print('測試2:python-100.txt 文件已關閉。')

    with open() 模式

    這種模式下文件打開之後不需要寫入文件關閉函數 close(),程序會在執行完 with 結構體中的程序後自動關閉打開的文件。

    示例:

    # 打開 'python-100.txt' 文件,如果文件不存在會在程序文件 *.py 所在的目錄下創建該文件。 with open('python-100.txt', 'w') as f: print('測試1:python-100.txt 文件已打開。') print('測試1:python-100.txt 文件已關閉。') # 打開 'C:\Users\Desktop\py' 路徑下的 'python-100.txt' 文件。 with open('C:\\Users\\Desktop\\py\\python-100.txt', 'w') as f: print('測試2:python-100.txt 文件已打開。') print('測試2:python-100.txt 文件已關閉。')

    文件讀寫方法

    當我們打開一個文件之後,根據需要我們會對文件内容進行一些操作, Python 當然為我們提供了文件内容的讀寫方法。

    以下表格内列出了一些常用的文件讀寫方法:

    讀寫方法

    描述

    read()

    一次性将文件中的内容全部讀取出來,缺點就是文件過大的話很容易導緻内存崩潰。

    read(n)

    一次讀取 n 個字符,如果再次讀取,會在上一次讀取過後的位置接着去讀取而不是從頭開始讀取, 如果使用的是 rb 模式,則讀取出來的是 n 個字節。

    readline()

    一次讀取一行内容,每次讀取出來的内容都以換行符 ‘\n’ 結尾。

    readlines()

    一次讀取打開文件的全部内容,返回一個列表,每一行内容作為元素放到一個列表中,缺點就是文件内容過大容易出現内存崩潰的問題。

    write(s)

    寫入字符串 s,如果再次寫入,會在上一次寫入的位置末尾繼續寫入。

    writelines(s)

    寫入字符串或列表 s,如果是列表的話列表中的所有元素必須為 string 類型,如果再次寫入,會在上一次寫入的位置末尾繼續寫入。

    read() 示例

    # 以 r 模式打開本地建立的 python-100.txt 文件,以 'utf-8' 編碼讀取文件中的所有内容 with open('python-100.txt', 'r', encoding='utf-8') as f: content = f.read() print(content) # 輸出結果 # Python-100 # 堅持100天

    read(n) 示例

    # 1.以 r 模式打開本地建立的 python-100.txt 文件,每次讀取 n 個字符 with open('python-100.txt', 'r', encoding='utf-8') as f: content = f.read(8) print(content) content = f.read(8) print(content) # 輸出結果(注意:每次讀取到的換行符 '\n' 也是算一個字符的,換行符位于每行内容的末尾) # Python-1 # 00 # 堅持100 # 2.以 rb 模式打開本地建立的 python-100.txt 文件,每次讀取 n 個字節,注意是字節 with open('python-100.txt', 'rb') as f: content = f.read(8) print(content) content = f.read(8) print(content) # 輸出結果 # b'Python-1' # b'00\r\n\xe5\x9d\x9a\xe6'

    readline() 示例

    # 以 r 模式打開本地建立的 python-100.txt 文件,每次讀取文件中的一行内容,利用 strip() 函數去掉每一行末尾的換行符 with open('python-100.txt', 'r', encoding='utf-8') as f: firstLine = f.readline().strip('\n') secondLine = f.readline().strip('\n') print(firstLine) print(secondLine) # 輸出結果 # Python-100 # 堅持100天

    readlines() 示例

    # 以 r 模式打開本地建立的 python-100.txt 文件,讀取文件中所有内容,以列表形式返回 with open('python-100.txt', 'r', encoding='utf-8') as f: content = f.readlines() print(content) for line in content: print(line.strip('\n')) # 輸出結果 # ['Python-100\n', '堅持100天'] # Python-100 # 堅持100天

    循環讀取文件内容示例

    # 每次讀取一行内容,該方法較為實用 with open('python-100.txt', 'r', encoding='utf-8') as f: for line in f: print(line.strip('\n')) # 輸出結果 # Python-100 # 堅持100天

    write() 示例

    # 以 r 模式打開本地建立的空文件 python-100.txt,向文件中寫入内容并讀取 f = open('python-100.txt', 'w', encoding='utf-8') f.write('Python-100\n') f.write('堅持100天') f.close() f = open('python-100.txt', 'r', encoding='utf-8') print(f.read()) f.close() # 輸出結果 # Python-100 # 堅持100天

    writelines() 示例

    # 以 r 模式打開本地建立的空文件 python-100.txt,向文件中寫入内容并讀取 f = open('python-100.txt', 'w', encoding='utf-8') content = ['Python-100\n', '堅持100天'] f.writelines(content) f.close() f = open('python-100.txt', 'r', encoding='utf-8') print(f.read()) f.close() # 輸出結果 # Python-100 # 堅持100天

    文件内容定位

    定位方法

    描述

    tell()

    返回當前文件讀取指針在什麼位置,按字節數來确定的。

    seek(n)

    用于移動文件讀取指針到指定位置,移動的單位為字節。

    tell() 函數應用示例

    # 以 w 模式打開本地建立的空文件 python-100.txt,獲取文件中讀取指針的位置 f = open('python-100.txt', 'w', encoding='utf-8') print('打開空文件時,指針位置為:', f.tell()) f.write('Python-100\n' '堅持100天') # 'utf-8'編碼格式下,換行符占 2 個字節,漢字占 3 個字節 print('寫入内容後,指針位置為:', f.tell()) f.close() # 輸出結果: # 打開空文件時,指針位置為: 0 # 寫入内容後,指針位置為: 24

    seek(offset, whence=0) 函數應用示例

  • offset,移動偏移的字節數,如果是負數表示從倒數第幾位開始。

  • whence,可選參數,默認值為 0。0 代表從文件開頭開始算偏移量,1 代表從當前位置開始算,2 代表從文件末尾算起。

    # 以 r 模式打開文件 python-100.txt,移動文件中讀取指針的位置 f = open('python-100.txt', 'rb') print("1.文件内容為:") print(f.read().decode('utf-8')) f.seek(6) print('\n2.偏移量為 12 個字節時,輸出内容為:') print(f.read().decode('utf-8')) f.seek(-12, 2) print('\n3.偏移量為 -12 個字節時,輸出内容為:') print(f.read().decode('utf-8')) print('\n4.在當前指針位置偏移:') f.seek(12) print('文件指針當前位置為:', f.tell()) f.seek(-6, 1) print('文件指針當前位置為:', f.tell()) f.seek(6, 1) print('文件指針當前位置為:', f.tell()) print(f.read().decode('utf-8')) f.close() # 輸出結果: # 1.文件内容為: # Python-100 # 堅持100天 # # 2.偏移量為 12 個字節時,輸出内容為: # -100 # 堅持100天 # # 3.偏移量為 -12 個字節時,輸出内容為: # 堅持100天 # # 4.在當前指針位置偏移: # 文件指針當前位置為: 12 # 文件指針當前位置為: 6 # 文件指針當前位置為: 12 # 堅持100天

    總結

    本節給大家介紹了 Python 中 文件操作的基本使用方法,主要是文件的讀寫操作,可以助您更高效的處理爬蟲獲取到的消息内容。

  • Comments
    Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
    Sign up to post
    Sort by
    Show More Comments
    推荐阅读
    怎麼判斷燃油系統壓力
    怎麼判斷燃油系統壓力
    電控高壓共軌柴油發動機剛剛上市的時候,故障多發。電控系統、配氣機構故障修哥倒是不怕(實際這部分故障也很少),可是燃油系統故障确實把修哥難為了很長時間(當時,這部分故障占絕大多數)。修哥費了很大力氣,總結了一些經驗,分享給大家,歡迎切磋讨論!...
    2024-11-17
    剛買的電視如何裝第三方軟件
    剛買的電視如何裝第三方軟件
    智能電視的一大好處在于可以安裝各種軟件,不過與現在的智能手機比起來,在電視上安裝軟件要相對麻煩些,所以身邊很多人都懶得去折騰,電視有啥就看啥,完全浪費了智能電視的這個優勢。其實在電視上安裝軟件沒想象中那麼複雜,掌握下面三種方法就夠了。1、電...
    2024-11-17
    短視頻文案
    短視頻文案
    短視頻文案?這吹不出褶的平靜日子也在閃光,今天小編就來說說關于短視頻文案?下面更多詳細答案一起來看看吧!短視頻文案這吹不出褶的平靜日子也在閃光。雞湯要跑着喝!跑着喝,才能轉化為能量,躺着喝,隻能轉化成脂肪。我想在你身上做,春天對櫻桃樹做的事...
    2024-11-17
    魅族和榮耀哪個值得入手
    魅族和榮耀哪個值得入手
    有傳言稱5G要來了,如果你連4G都沒用上,還在用非常慢的3G、2G時,那你就非常OUT了,可能你擔心4G手機太貴,但是不要緊,今天小編就給你推薦幾款性價比出色的4G手機,有需要的用戶可以多了解一下。神舟X55Pro神舟X55Pro是神舟一款...
    2024-11-17
    現在手機連接不上電腦怎麼辦
    現在手機連接不上電腦怎麼辦
    現在手機連接不上電腦怎麼辦?1、隻顯示充電不能usb連接拷貝文件信息,我來為大家科普一下關于現在手機連接不上電腦怎麼辦?以下内容希望對你有幫助!現在手機連接不上電腦怎麼辦1、隻顯示充電不能usb連接拷貝文件信息關于設備開發者選項那裡usb調...
    2024-11-17
    Copyright 2023-2024 - www.tftnews.com All Rights Reserved