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

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

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

Python-文件操作

汽車(chē)電子技術(shù) ? 來(lái)源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-02-16 15:42 ? 次閱讀

文件的基本操作

概念

  • 在計(jì)算機(jī)中,文件是以 二進(jìn)制 的方式保存在磁盤(pán)上的
  • 文本文件 二進(jìn)制文件
    • 文本文件(用記事本打開(kāi)能直接能看懂的)
      • 可以使用 文本編輯軟件查看
      • 本質(zhì)上還是二進(jìn)制的,比如 Python的源碼文件
    • 二進(jìn)制文件(用記事本打開(kāi)看不懂的)
      • 保存的內(nèi)容無(wú)法直接閱讀,而是 提供給其他軟件使用
      • 比如:圖片、音頻視頻 文件等
  • 文件操作的三個(gè)步驟
    • 打開(kāi)文件
    • 讀、寫(xiě)文件
      • 讀:將文件讀入內(nèi)存
      • 寫(xiě):將內(nèi)存中的數(shù)據(jù)寫(xiě)入文件
    • 關(guān)閉文件

操作文件的函數(shù)/方法

  • open 函數(shù)負(fù)責(zé)打開(kāi)文件,并且返回文件對(duì)象

    • 如果文件存在,返回文件操作對(duì)象
    • 如果文件不存在,會(huì)拋出異常
  • **read、write、close 需要文件對(duì)象來(lái)操作

    **

函數(shù) 說(shuō)明
open 打開(kāi)文件,并且返回文件操作對(duì)象
read 將文件內(nèi)容讀取到內(nèi)存
write 將內(nèi)存中的數(shù)據(jù)寫(xiě)入文件
close 關(guān)閉文件

示例

  • 新建一個(gè) aa.txt 文件,內(nèi)容如下

    圖片

  • 讀取代碼如下

# 打開(kāi)文件
file=open("aa.txt")


# 讀取文件
content=file.read()
print(content)


# 關(guān)閉文件,如果忘記關(guān)閉,會(huì)造系統(tǒng)資源消耗,影響后續(xù)訪(fǎng)問(wèn)
file.close()

注: 打開(kāi)文件后,當(dāng)操作完成后,一定要注意關(guān)閉,不然會(huì)造成資源消耗,影響后續(xù)對(duì)文件的訪(fǎng)問(wèn)

輸出結(jié)果

圖片

文件的打開(kāi)方式

open 函數(shù)默認(rèn)以 只讀方式 打開(kāi)文件,并返回文件對(duì)象

語(yǔ)法

file=open("文件名","訪(fǎng)問(wèn)方式")
訪(fǎng)問(wèn)方式 說(shuō)明
r 以只讀方式打開(kāi)文件,文件的指針會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式
w 以只寫(xiě)方式打開(kāi)文件,如果文件存在會(huì)被覆蓋,不存在則會(huì)創(chuàng)建文件
a 以追加方式打開(kāi)文件。如果文件存在,文件指針會(huì)在結(jié)尾,后續(xù)以追加內(nèi)容的方式進(jìn)行。如果文件不存在,則創(chuàng)建新文件進(jìn)行寫(xiě)入
r+ 以讀寫(xiě)方式打開(kāi)文件,文件指針在開(kāi)頭。如果文件不存在,拋異常
w+ 以讀寫(xiě)方式打開(kāi)文件。如果文件存在會(huì)被覆蓋。如果不存在,創(chuàng)建新文件
a+ 以讀寫(xiě)方式打開(kāi)文件。如果文件存在則指針在文件結(jié)尾。如果不存在則創(chuàng)建新文件

**示例

**

# 寫(xiě)入文件
file=open("bb.txt","w")
# 寫(xiě)入內(nèi)容
file.write("aaaaaaaa")
# 關(guān)閉文件
file.close()


# 追加內(nèi)容
file=open("bb.txt","a")
file.write("ccccccc")
file.close()

輸出結(jié)果

圖片

**按行讀取內(nèi)容

**

  • readling 方法可以一次讀取一行內(nèi)容
  • 方法執(zhí)行后,會(huì)把** 文件指針 **移動(dòng)到下一行

with + open() 模式 (推薦使用)

  • 這種模式下文件打開(kāi)之后不需要寫(xiě)入文件關(guān)閉函數(shù) close(),程序會(huì)在執(zhí)行完 with 結(jié)構(gòu)體中的程序后自動(dòng)關(guān)閉打開(kāi)的文件

示例:文件復(fù)制

test_list=[]
# 讀取文件數(shù)據(jù)到內(nèi)存
with open("aa.txt","r") as f:
    # 讀取所有行
    for line in f.readlines():
        test_list.append(line)


# 從內(nèi)存讀取數(shù)據(jù),寫(xiě)入到文件
with open("cc.txt","w") as f:
    for line in test_list:
        f.write(line)

文件/目錄管理

在Python 中,如果希望對(duì) 文件或文件夾進(jìn)行 創(chuàng)建、重命名、刪除、查看 等操作,需要導(dǎo)入 os 模塊

**文件操作

**

方法名 說(shuō)明 示例
rename 重命名文件 os.rename(源文件,目標(biāo)文件)
remove 刪除文件 os.remove(文件名)
mknod

目錄操作

方法名 說(shuō)明 示例
listdir 目錄列表 os.listdir(目錄名)
mkdir 創(chuàng)建目錄 os.mkdir(目錄名)
rmdir 刪除目錄 os.rmdir(目錄名)
getcwd 獲取當(dāng)前目錄 os.getcwd()
chdir 修改工作目錄 os.chdir(目標(biāo)目錄)
path.isdir 判斷是否是目錄 os.path.isdir(目錄路徑)

注:對(duì)文件或者目錄的操作, 都支持 相對(duì)路徑 與 絕對(duì)路徑

**示例

**

import os
# 在當(dāng)前目錄下 創(chuàng)建一個(gè) 目錄 aaa
os.mkdir("aaa")
# 在 aaa 目錄下創(chuàng)建兩個(gè)文件
with open("aaa/aaa.txt","w") as f:
    f.write("hhhhhhhhhhhh")
with open("aaa/bbb.txt","w") as f:
    f.write("ddddddddddddd")


# 獲取當(dāng)前目錄
dirpwd = os.getcwd()
print(dirpwd)

文本文件的編碼

  • 文本文件存儲(chǔ)的內(nèi)容是基于 字符編碼 的文件,常見(jiàn)的編碼有 ASCII 編碼,UNICODE 編碼等
    • Python 3.x 默認(rèn)使用 UTF-8 編碼
  • ASCII編碼
    • 計(jì)算機(jī)中只有 256個(gè) ASCII 字符,一個(gè)ASCII在內(nèi)存中占用 1個(gè)字節(jié)的空間
  • UTF-8 編碼
    • 計(jì)算機(jī)中使用 1~6 個(gè)字節(jié)來(lái)表示一個(gè) UTF-8 字符,涵蓋了地球上幾乎所有地區(qū)的文字
    • 大多數(shù)漢字會(huì)用 3個(gè)字節(jié)表示
    • UTF-8 是 UNICODE 編碼的一種編碼格式

eval 函數(shù)

eval() 函數(shù)十分強(qiáng)大,將字符串 當(dāng)成 有效的表達(dá)式 來(lái)求值 并返回計(jì)算結(jié)果

示例

# 解析字符串的 數(shù)字相加
print(eval("1+2"))


# 解析 列表
print(eval("[1,3,4,5,5]"))
print(type(eval("[1,3,4,5,5]")))


# 解析 字典
print(eval("{'aaa':1,'bbb':2}"))
print(type(eval("{'aaa':1,'bbb':2}")))

輸出結(jié)果

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    761

    瀏覽量

    41475
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7168

    瀏覽量

    87142
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    551

    瀏覽量

    24559
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    python學(xué)習(xí)--文件操作

    進(jìn)入第7天的學(xué)習(xí),學(xué)到了python文件操作,教程說(shuō)是和C語(yǔ)言兼容,于是就迫不及待的的想試試。按照教程的輸入,直接改成自己的目錄f=open('D:\python\text.txt'
    發(fā)表于 12-25 16:41

    請(qǐng)問(wèn)python文件怎么操作?

    python文件操作步驟
    發(fā)表于 11-16 07:53

    請(qǐng)問(wèn)python-樹(shù)莓派如何通過(guò)按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)?

    步進(jìn)電機(jī)驅(qū)動(dòng)原理是什么?python-樹(shù)莓派如何通過(guò)按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)?
    發(fā)表于 10-09 08:45

    python-控制khr3hv-master機(jī)器人

    python-控制khr3hv機(jī)器人,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-22 15:40 ?2次下載

    python文件操作實(shí)例代碼說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是python文件操作實(shí)例代碼說(shuō)明。
    發(fā)表于 09-07 18:21 ?11次下載
    <b class='flag-5'>python</b>的<b class='flag-5'>文件</b><b class='flag-5'>操作</b>實(shí)例代碼說(shuō)明

    python文件和目錄的操作方法介紹和實(shí)例說(shuō)明

    這篇文章主要介紹了python 文件和目錄的操作方法,簡(jiǎn)明總結(jié)了文件和目錄操作中常用的模塊、方法,并列舉了一個(gè)綜合實(shí)例,需要的朋友可以參考下
    發(fā)表于 09-16 17:12 ?5次下載
    <b class='flag-5'>python</b><b class='flag-5'>文件</b>和目錄的<b class='flag-5'>操作</b>方法介紹和實(shí)例說(shuō)明

    python文件和目錄的操作方法介紹和實(shí)例說(shuō)明

    這篇文章主要介紹了python 文件和目錄的操作方法,簡(jiǎn)明總結(jié)了文件和目錄操作中常用的模塊、方法,并列舉了一個(gè)綜合實(shí)例,需要的朋友可以參考下
    發(fā)表于 09-16 17:12 ?0次下載
    <b class='flag-5'>python</b><b class='flag-5'>文件</b>和目錄的<b class='flag-5'>操作</b>方法介紹和實(shí)例說(shuō)明

    abaqus-Python實(shí)例-操作excel文件下載

    abaqus-Python實(shí)例-操作excel文件
    發(fā)表于 12-17 16:40 ?0次下載
    abaqus-<b class='flag-5'>Python</b>實(shí)例-<b class='flag-5'>操作</b>excel<b class='flag-5'>文件</b>下載

    Python-基本概念

    python源程序就是一個(gè)特殊的文本文件,可以使用任意文本編輯軟件做開(kāi)發(fā)
    的頭像 發(fā)表于 02-16 14:49 ?556次閱讀
    <b class='flag-5'>Python-</b>基本概念

    網(wǎng)絡(luò)工程師學(xué)Python-文件打開(kāi)

    Python中,可以使用open()內(nèi)置函數(shù)打開(kāi)文件,以執(zhí)行一系列文件操作。在本文中,將介紹Python中打開(kāi)
    的頭像 發(fā)表于 04-27 09:14 ?560次閱讀

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

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

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

    Python 文件刪除是 Python 開(kāi)發(fā)中常用的一項(xiàng)操作,本文將針對(duì) Python 中的 os 模塊提供多個(gè)示例,介紹如何刪除不同類(lèi)型的
    的頭像 發(fā)表于 04-27 09:24 ?432次閱讀

    python文件操作是什么

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

    如何用Python來(lái)實(shí)現(xiàn)文件系統(tǒng)的操作功能

    近幾年隨著 Python 的熱度不斷上漲,人們漸漸使用這門(mén)編程語(yǔ)言來(lái)進(jìn)行一些自動(dòng)化操作,以節(jié)省重復(fù)勞動(dòng)帶來(lái)的效率低下,那么必定會(huì)涉及到對(duì) 文件系統(tǒng)的操作 ,包括
    的頭像 發(fā)表于 10-30 14:27 ?319次閱讀
    如何用<b class='flag-5'>Python</b>來(lái)實(shí)現(xiàn)<b class='flag-5'>文件</b>系統(tǒng)的<b class='flag-5'>操作</b>功能

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開(kāi)蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些用 Python 實(shí)現(xiàn)
    的頭像 發(fā)表于 07-18 14:53 ?252次閱讀