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

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

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

python創(chuàng)建文件對(duì)象

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

2.1.

創(chuàng)建文件對(duì)象

**open()

函數(shù)用于創(chuàng)建文件對(duì)象,基本語法格式如下:** open(文件名[,打開方式])

注意:

  • 如果只是文件名,代表在當(dāng)前目錄下的文件.

    文件名可以錄入全路徑,比如:D:\\a\\b.txt 可以使用原始字符串 r“d:\\b.txt” 減少 \\ 的輸入 ,

    因此以上代碼可改寫成 f = open(r"d:\\b.txt","w")

  • 作為入?yún)⒌拇蜷_方式如下(經(jīng)常會(huì)用!!!)圖片

  • 文本文件對(duì)象和二進(jìn)制文件對(duì)象的創(chuàng)建如果是二進(jìn)制模式

    b ,則創(chuàng)建的是二進(jìn)制文件對(duì)象,處理的基本單元是“字節(jié)” 如果沒有增加模式 b

    ,則默認(rèn)創(chuàng)建的是文本文件對(duì)象,處理的基本單元是“字符”

2.2.

文件的寫入

文本文件的寫入一般就是三個(gè)步驟:

  • 創(chuàng)建文件對(duì)象
  • 寫入數(shù)據(jù)
  • 關(guān)閉文件對(duì)象

基本文件的寫入操作

實(shí)操代碼

# 1.使用open()方式
f = open(r"d:\\a.txt", "a")
s = "TimePause\\n時(shí)間靜止\\n"
f.write(s)
f.close()

結(jié)果展示

圖片

中文亂碼

代碼編寫時(shí)

windows

操作系統(tǒng)默認(rèn)的編碼是 GBK , Linux 操作系統(tǒng)默認(rèn)的編碼是 UTF- 8 .**當(dāng)我們用

open() 時(shí),調(diào)用的是操作系統(tǒng)相關(guān)api來打開的文件,并且默認(rèn)的編碼是 GBK 但是由于我們通常習(xí)慣將所有代碼編碼都設(shè)置成 UTF- 8 .,

因此在打開時(shí)會(huì)出現(xiàn)亂碼問題, 如下圖所示**

圖片解決方案: 按照上圖提示,

將文本編碼設(shè)置成 GBK格式讀取即可圖片注意: 我們還可以通過指定編碼來解決中文亂碼問題.

因?yàn)槲覀儗?code>pycharm文本讀寫編碼都設(shè)置成

utf-8, 因此只要 **我們?cè)谖募懭氲臅r(shí)候規(guī)定編碼為

utf-8(默認(rèn)gbk)** , 那么我們?cè)谧x取時(shí)就不會(huì)出現(xiàn)亂碼. 如下代碼

實(shí)操代碼

# 【示例】通過指定文件編碼解決中文亂碼問題
f = open(r"d:\\bb.txt", "w", encoding="utf-8")
f.write("一個(gè)有溫情的小站\\n時(shí)間靜止不是簡(jiǎn)史")
f.close()

控制臺(tái)輸出時(shí)****問題描述

我們一般習(xí)慣把pycharm所有字符編碼設(shè)置成utf-8時(shí).

在我們進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí), 有時(shí)候會(huì)返回亂碼問題, 如下圖

圖片

圖片

問題分析

因?yàn)槲覀冊(cè)?/p>

pycharm 設(shè)置所有字符編碼均為 UTF-8, 但是**通過網(wǎng)絡(luò)請(qǐng)求得到GBK格式的文本,

然后我們?nèi)砸?UTF-8 編碼去解碼就會(huì)出現(xiàn)亂碼**

解決方案

可以將項(xiàng)目編碼設(shè)置成GBK格式即可;

也可以通過文本操作代碼對(duì)得到的數(shù)據(jù)進(jìn)行GBK格式讀取 亦或者在寫入時(shí), 直接將編碼聲明為UTF-8

圖片圖片

write()/writelines()寫入數(shù)據(jù)

  • write(a) :把字符串

    a 寫入到文件中

  • writelines(b) :把字符串列表寫入文件中,不添加換行符

實(shí)操代碼

# 【操作】添加字符串列表數(shù)據(jù)到文件中
f = open(r"d:\\bb.txt", 'w', encoding="utf-8")
s = ["什么鬼\\n"] * 3  # 通過 \\n實(shí)現(xiàn)手動(dòng)換行
f.writelines(s)
f.close()

close()關(guān)閉文件流

由于文件底層是由操作系統(tǒng)控制,所以我們打開的文件對(duì)象必須顯式調(diào)用

close() 方法關(guān)閉文件對(duì)象. 當(dāng)調(diào)用 close() 方法時(shí),首先會(huì)把緩沖區(qū)數(shù)據(jù)寫入文件(也可以直接調(diào)用 flush()

方法),再關(guān)閉文件,釋放文件對(duì)象

注意:

  • close()一般結(jié)合異常機(jī)制的

    finally 一起使用

  • 也可以**通過

    with 關(guān)鍵字實(shí)現(xiàn)無論何種情況都能關(guān)閉打開的文件對(duì)象(推薦)**

實(shí)操代碼

# 【操作】結(jié)合異常機(jī)制的 finally ,確保關(guān)閉文件對(duì)象
# "a" 設(shè)置打開方式為追加模式
try:
    f = open(r"d:\\c.txt", "a")
    s = "來自深淵"
    f.write(s)
except BaseException as e:
    print(e)
finally:
    f.close()

with語句(上下文管理器)

with關(guān)鍵字

(上下文管理器)可以自動(dòng)管理上下文資源,不論什么原因跳出 with塊 ,都能確保文件正確的關(guān)閉,

并且可以在代碼塊執(zhí)行完畢后自動(dòng)還原進(jìn)入該代碼塊時(shí)的現(xiàn)場(chǎng)

實(shí)操代碼

# 【操作】使用 with 管理文件寫入操作
s = ["齊格飛"] * 3
with open(r"d:\\cc.txt", "w") as f:
    f.writelines(s)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62228
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84289
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    《Visual C# 2008程序設(shè)計(jì)經(jīng)典案例設(shè)計(jì)與實(shí)現(xiàn)》---動(dòng)態(tài)創(chuàng)建文件并輸入文件內(nèi)容

    《Visual C# 2008程序設(shè)計(jì)經(jīng)典案例設(shè)計(jì)與實(shí)現(xiàn)》---動(dòng)態(tài)創(chuàng)建文件并輸入文件內(nèi)容.zip
    發(fā)表于 07-08 13:27

    labview中在創(chuàng)建文件函數(shù)時(shí)出現(xiàn) memory is full 的問題

    `labview中在創(chuàng)建文件函數(shù)時(shí)出現(xiàn) memory is full 的問題,這個(gè)問題是不是由于沒有加入關(guān)閉文件函數(shù)引起的呢`
    發(fā)表于 12-25 14:12

    請(qǐng)問FATFS創(chuàng)建文件夾時(shí)如何添加創(chuàng)建時(shí)間?

    如題!通過實(shí)現(xiàn)get_fattime函數(shù),創(chuàng)建文件時(shí)是可以添加“創(chuàng)建時(shí)間”的,但是創(chuàng)建文件夾時(shí)卻不能,請(qǐng)各位幫忙,謝謝!另外,f_utime添加的是“修改時(shí)間”
    發(fā)表于 12-13 08:44

    Hive的創(chuàng)建文件數(shù)限制的解決方法

    解決Hive創(chuàng)建文件數(shù)過多的問題
    發(fā)表于 04-29 11:12

    怎么在SD卡里面創(chuàng)建文件

    如何在SD卡里面創(chuàng)建文件啊,不完全手冊(cè)那個(gè)試驗(yàn)說了這個(gè)嗎
    發(fā)表于 09-23 04:05

    如何設(shè)置一個(gè)路徑創(chuàng)建文件并寫入數(shù)據(jù)?

    你好,我使用的procmodule接收超聲波傳感器的數(shù)據(jù)并通過串口通信的終端顯示。我的問題是,可以對(duì)存儲(chǔ)在文件terminalbe接收數(shù)據(jù)(.txt。docx格式)??文件處理系統(tǒng)是否支持PROC?如果是,如何設(shè)置一個(gè)路徑創(chuàng)建文件
    發(fā)表于 11-06 09:23

    DFS創(chuàng)建文件失敗是為什么

    需要創(chuàng)建文件 static uint8_t Creatdir = 1;//用來表示是否需要創(chuàng)建文件夾 static int fd = 0; int res_sync; int res_write
    發(fā)表于 04-12 10:06

    為什么用DFS創(chuàng)建文件會(huì)失敗呢?

    ;//用來表示是否需要創(chuàng)建文件static uint8_t Creatdir = 1;//用來表示是否需要創(chuàng)建文件夾static int fd = 0;int res_sync;int res_write
    發(fā)表于 01-11 14:25

    dos命令怎么用_DOS下創(chuàng)建文件、文件

    DOS命令,計(jì)算機(jī)術(shù)語,是指DOS操作系統(tǒng)的命令,是一種面向磁盤的操作命令,主要包括目錄操作類命令、磁盤操作類命令、文件操作類命令和其它命令。本文將詳細(xì)講解dos命令怎么用以及DOS下怎么創(chuàng)建文件、文件夾。
    發(fā)表于 01-17 16:15 ?5.6w次閱讀
    dos命令怎么用_DOS下<b class='flag-5'>創(chuàng)建文件</b>、<b class='flag-5'>文件</b>夾

    如何使用WEBENCH?電源系統(tǒng)創(chuàng)建文檔?

    使用WEBENCH?Power Designer創(chuàng)建文
    的頭像 發(fā)表于 08-20 00:03 ?1661次閱讀

    在Linux中如何創(chuàng)建文件

    使用cat創(chuàng)建文件時(shí),以系統(tǒng)默認(rèn)的文件屬性作為新文件的屬性,并接受鍵盤輸入作為文件的內(nèi)容。輸入結(jié)束時(shí)按Ctrl+d退出并保存文件。
    發(fā)表于 05-31 09:23 ?6240次閱讀
    在Linux中如何<b class='flag-5'>創(chuàng)建文件</b>

    干貨:總結(jié)Java中創(chuàng)建文件的五種最佳實(shí)踐方法(附源碼)

    在java中有很多的方法可以創(chuàng)建文件文件,你是否真的認(rèn)真的總結(jié)過?下面筆者就幫大家總結(jié)一下java中創(chuàng)建文件的五種方法。
    的頭像 發(fā)表于 08-28 11:29 ?6823次閱讀
    干貨:總結(jié)Java中<b class='flag-5'>創(chuàng)建文件</b>的五種最佳實(shí)踐方法(附源碼)

    淺析python模塊創(chuàng)建和from及import使用

    python模塊通過用python程序編寫的.py文件即可創(chuàng)建,通過from及import語句導(dǎo)入模塊來使用。
    的頭像 發(fā)表于 02-21 14:44 ?768次閱讀

    介紹Python文件創(chuàng)建與寫入的基本方法

    Python 文件寫入和創(chuàng)建Python 開發(fā)中必須掌握的技能之一。在本文中,我們將介紹 Python
    的頭像 發(fā)表于 04-27 09:22 ?3241次閱讀

    如何用Python轉(zhuǎn)移文件至云對(duì)象存儲(chǔ)

    對(duì)象存儲(chǔ)(Cloud Object Storage,COS)是一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),具有高擴(kuò)展性、低成本、可靠安全等優(yōu)點(diǎn)。 對(duì)象存儲(chǔ)有什么用呢?對(duì)于站長(zhǎng)而言,比如Python
    的頭像 發(fā)表于 10-31 10:22 ?463次閱讀
    如何用<b class='flag-5'>Python</b>轉(zhuǎn)移<b class='flag-5'>文件</b>至云<b class='flag-5'>對(duì)象</b>存儲(chǔ)