0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python文件的讀取

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:Python都知道 ? 2023-06-21 17:23 ? 次閱讀

文件讀取的步驟:

  • 打開文本文件對象
  • 寫入數(shù)據(jù)

文件的讀取一般使用如下三個(gè)方法:

  • read([size]) : 從文件中讀取 size 個(gè)字符,并作為結(jié)果返回如果沒有 size 參數(shù),則讀取整個(gè)文件. 讀取到文件末尾,會(huì)返回空字符串
  • readline(): 讀取一行內(nèi)容作為結(jié)果返回讀取到文件末尾,會(huì)返回空字符串
  • readlines() : 文本文件中,每一行作為一個(gè)字符串存入列表中,返回該列表

代碼格式

with open(r"d:\\a.txt", "r"[, encoding="utf-8"]) as f:
    f.read(4)

注意:

  • 在讀取文件時(shí), 需要注意讀寫時(shí)字符編碼的一致性 , 如果寫的時(shí)候沒有指定編碼(默認(rèn)GBK), 則在讀取的時(shí)候也不需要指定編碼
  • 但如果讀的時(shí)候未指定編碼, 寫的時(shí)候指定, 則會(huì)報(bào)錯(cuò). 例如: 寫的時(shí)候指定 encoding="utf-8", 則控制臺(tái)報(bào) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 13: invalid start byte

實(shí)操代碼

# 【操作】 讀取一個(gè)文件前4個(gè)字符
import pickle

with open(r"d:\\a.txt", "r") as f:
    print(f.read(4))

# 【操作】文件較小,一次將文件內(nèi)容讀入到程序中
with open(r"d:\\aa.txt", "r") as f:
    print(f.read())

# 【操作】按行讀取一個(gè)文件
with open(r"d:\\b.txt") as f:
    while True:
        lines = f.readline()
        if not lines:  # 在python 中 if not 會(huì)將后面對象隱式轉(zhuǎn)成True或者False進(jìn)行判斷, 因此遇到空字符串也返回False
            break
        else:
            print(lines, end="")
            print()

# 【操作】使用迭代器(每次返回一行)讀取文本文件
# 寫和讀的編碼要對應(yīng)
with open(r"d:\\bb.txt", "r", encoding="utf-8") as f:
    for a in f:
        print(a, end="")

# 【操作】為文本文件每一行的末尾增加行號
with open(r"d:\\c.txt", "r") as f:
    lines = f.readlines()
    lines2 = [line.rstrip() + " # " + str(index) + "\\n" for index, line in zip(range(1, len(lines) + 1), lines)]
    with open(r"d:\\c.txt", "w") as ff:
        ff.writelines(lines2)

二進(jìn)制文件的讀取和寫入

二進(jìn)制文件的處理流程和文本文件流程一致。首先還是要?jiǎng)?chuàng)建文件對象, 創(chuàng)建好二進(jìn)制文件對象后,仍然可以使用 write() 、 read() 實(shí)現(xiàn)文件的讀寫操作

在創(chuàng)建文件對象時(shí), 首先需要指定二進(jìn)制模式,然后才能創(chuàng)建出二進(jìn)制文件對象. 例如

  • f = open(r"d:\\a.txt", 'wb') 可寫的、重寫模式的二進(jìn)制文件對象
  • f = open(r"d:\\a.txt", 'ab') 可寫的、追加模式的二進(jìn)制文件對象
  • f = open(r"d:\\a.txt", 'rb') 可讀的二進(jìn)制文件對象

實(shí)操代碼

# 二進(jìn)制文件的讀取和寫入(此操作相當(dāng)于復(fù)制)
# f = open(r"d:\\a.txt", 'wb') #可寫的、重寫模式的二進(jìn)制文件對象
# f = open(r"d:\\a.txt", 'ab') #可寫的、追加模式的二進(jìn)制文件對象
# f = open(r"d:\\a.txt", 'rb') #可讀的二進(jìn)制文件對象
with open(r"d:\\aaa.png", "rb") as scrFile, open(r"d:\\bbb.png", "wb") as destFile:
    for l in scrFile:
        destFile.write(l)

2.4. 文件對象的常用屬性和方法

文件對象的屬性圖片文件對象的打開模式

圖片文件對象的常用方法

圖片

文件任意位置操作

利用 seek() 可以將讀取文件的指針移動(dòng)到指定字節(jié)位置上一個(gè)中文字符站兩個(gè)字節(jié), 而英文只占一個(gè)字節(jié)

實(shí)操代碼

print("=================文件任意位置操作======================")
# 【示例】 seek() 移動(dòng)文件指針示例
with open(r"d:\\cc.txt", "r") as f:
    print("文件名是{0}".format(f.name))  # 文件名是d:\\cc.txt
    print(f.tell())  # 0
    print("讀取文件的內(nèi)容", str(f.readline()))  # 讀取文件的內(nèi)容 齊格飛齊格飛齊格飛
    print(f.tell())  # 18
    f.seek(4, 0)  # 中文占2個(gè)字節(jié), 因此在seek時(shí)需要是2的倍數(shù)
    print("文件讀取的內(nèi)容", str(f.readline()))  # 文件讀取的內(nèi)容 飛齊格飛齊格飛
    print(f.tell())  # 18
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    555

    瀏覽量

    24633
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4756

    瀏覽量

    84283
收藏 人收藏

    評論

    相關(guān)推薦

    如何在 Python讀取文本文件?

    本帖最后由 dife289 于 2021-6-29 18:22 編輯 文本文件是包含簡單文本的文件。Python 提供了內(nèi)置函數(shù)來讀取、創(chuàng)建和寫入文本
    發(fā)表于 06-10 20:21

    Python 讀取文件的6種方式

    ;, 'r')file.read()如果你還在使用 Python2,那么它可以幫你處理掉 Python 2 下寫文件時(shí)一些編碼錯(cuò)誤,一般的建議是:在 Python 3 下寫
    發(fā)表于 04-11 15:30

    如何通過pandas讀取csv文件指定的前幾行?

    今天小編給大家分享一篇Python技術(shù)開發(fā)方面的文章,如何實(shí)現(xiàn)pandas讀取csv文件指定的前幾行,喜歡Python開發(fā)的小伙伴下面就隨小編一起來了解一下吧。
    發(fā)表于 09-19 17:43 ?16次下載

    python接口文件使用說明

    首先,python接口文件在安裝好的darknet目錄下的python文件夾,打開就可以看到
    發(fā)表于 05-18 11:30 ?2033次閱讀
    <b class='flag-5'>python</b>接口<b class='flag-5'>文件</b>使用說明

    python文件讀取的源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是python文件讀取的源代碼免費(fèi)下載。
    發(fā)表于 08-07 17:14 ?20次下載
    <b class='flag-5'>python</b><b class='flag-5'>文件</b><b class='flag-5'>讀取</b>的源代碼免費(fèi)下載

    使用Python對壓縮文件的處理

    zipfile是Python里用來做zip格式編碼的壓縮和解壓縮的module,zipfile里有兩個(gè)非常重要的class:ZipFile和ZipInfo。ZipFile是主要的類,用來創(chuàng)建和讀取zip文件,而ZipInfo是存
    的頭像 發(fā)表于 03-29 11:29 ?2443次閱讀

    讀取公盤文件方法

    讀取公盤文件方法
    發(fā)表于 11-07 11:27 ?0次下載

    利用Python讀取多份Excel的小技巧

    在使用 Python 批量處理 Excel 時(shí)經(jīng)常需要批量讀取數(shù)據(jù),常見的方式是結(jié)合glob模塊,可以實(shí)現(xiàn)將當(dāng)前文件夾下的所有csv批量讀取,并且合并到一個(gè)大的DataFrame中
    的頭像 發(fā)表于 02-02 09:48 ?2262次閱讀

    介紹Python中常用的文件讀取方法以及應(yīng)用示例

    ython 文件讀取Python 語言中的基本操作之一。在編寫Python 程序時(shí),我們經(jīng)常需要讀取不同的
    的頭像 發(fā)表于 04-27 09:16 ?974次閱讀

    網(wǎng)絡(luò)工程師學(xué)Python-文件處理

    當(dāng)涉及到 Python 文件處理時(shí), 我們通常會(huì)涉及到文件讀取和寫入, 以及文件的操作和處理。
    的頭像 發(fā)表于 04-27 09:21 ?604次閱讀

    python文件操作是什么

    一、什么是文件操作 一個(gè)完整的程序一般都包括數(shù)據(jù)的存儲(chǔ)和讀取;我們在前面寫的程序數(shù)據(jù)都沒有進(jìn)行實(shí)際的存儲(chǔ),因此python解釋器執(zhí)行完數(shù)據(jù)就消失了 實(shí)際開發(fā)中,我們經(jīng)常需要從外部存儲(chǔ)介質(zhì)(硬盤、光盤
    的頭像 發(fā)表于 06-21 17:15 ?2091次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>文件</b>操作是什么

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接 Python是一門高級編程語言,廣泛應(yīng)用于各種領(lǐng)域。其中,
    的頭像 發(fā)表于 08-28 17:09 ?1683次閱讀

    如何使用Python和pandas庫讀取、寫入文件

    在本文中,我將介紹如何使用 Python 和 pandas 庫讀取、寫入文件。 1、安裝 pip install pandas 2、讀取 import pandas as pd df
    的頭像 發(fā)表于 09-11 17:52 ?1091次閱讀

    如何使用Python讀取寫入Word文件

    01 準(zhǔn)備 Python 是一種通用編程語言,也可以用于處理 Microsoft Word 文件。在本文中,我將向你介紹如何使用 Pythonpython-docx 庫
    的頭像 發(fā)表于 09-27 17:03 ?1937次閱讀

    python中如何保存文件

    Python中,可以使用多種方式來保存文件。以下是一些常見的方法: 使用內(nèi)置的open()函數(shù):open()函數(shù)用于打開文件并返回一個(gè)文件對象,可以在此對象上執(zhí)行
    的頭像 發(fā)表于 11-24 09:32 ?1029次閱讀