Python實(shí)現(xiàn)將內(nèi)容寫(xiě)入文件的五種方法總結(jié)
一、write()方法
使用 write() 方法:使用 open() 函數(shù)打開(kāi)文件,然后使用 write() 方法將內(nèi)容寫(xiě)入文件。例如:
with open('example.txt', 'w') as f: f.write('Hello, world!')
open() 函數(shù)是 Python 內(nèi)置的用于打開(kāi)文件的函數(shù),其常用的參數(shù)及其含義如下:
1.file: 文件名或文件路徑??梢允墙^對(duì)路徑或相對(duì)路徑。如果是相對(duì)路徑,則相對(duì)于當(dāng)前工作目錄。如果省略了路徑,就在當(dāng)前工作目錄中打開(kāi)文件。
2.mode: 文件打開(kāi)模式。可以是以下值之一:
- 'r': 只讀模式。默認(rèn)模式,如果文件不存在,會(huì)引發(fā)異常。
- 'w': 寫(xiě)模式。如果文件不存在,則創(chuàng)建文件。如果文件已存在,則清空文件并寫(xiě)入新內(nèi)容。
- 'x': 獨(dú)占創(chuàng)建模式。如果文件不存在,則創(chuàng)建文件。如果文件已存在,則引發(fā)異常。
- 'a': 追加模式。如果文件不存在,則創(chuàng)建文件。如果文件已存在,則將新內(nèi)容添加到文件末尾。
- 'b': 二進(jìn)制模式。與其他模式一起使用,例如 'rb' 或 'wb'。
- 't': 文本模式。與其他模式一起使用,例如 'rt' 或 'wt'。
3.buffering: 設(shè)置緩沖區(qū)的大小。如果省略或?yàn)?,則不進(jìn)行緩沖。如果為1,則行緩沖。如果大于1,則為緩沖區(qū)大小。
4.encoding: 用于編碼和解碼文件內(nèi)容的編碼格式。如果省略,使用默認(rèn)編碼。
5.errors: 編碼和解碼文件內(nèi)容時(shí)遇到錯(cuò)誤時(shí)的處理方式??梢允且韵轮抵唬?/p>
- 'strict': 默認(rèn)值,表示遇到錯(cuò)誤時(shí)引發(fā)異常。
- 'ignore': 忽略錯(cuò)誤。
- 'replace': 用 '?' 替換錯(cuò)誤的字符。
- 'backslashreplace': 用反斜杠轉(zhuǎn)義替換錯(cuò)誤的字符。
- 'xmlcharrefreplace': 用 XML 實(shí)體替換錯(cuò)誤的字符。
- 'namereplace': 用 \N{...} 轉(zhuǎn)義替換錯(cuò)誤的字符。
6.newline: 控制文本模式下的換行符處理方式。可以是以下值之一:
- None: 使用默認(rèn)換行符 \n。
- '': 不進(jìn)行換行符轉(zhuǎn)換。
- '\n', '\r', '\r\n', '\u2028', '\u2029': 使用指定的換行符。
7.closefd: 如果為 True,則表示將在打開(kāi)文件時(shí)關(guān)閉其底層文件描述符。默認(rèn)為 True。
8.opener: 用于打開(kāi)文件的自定義函數(shù)或類。默認(rèn)為 None。
這些參數(shù)可以以不同的組合使用,以滿足對(duì)文件的不同操作需求。例如,open('example.txt', 'w') 會(huì)以寫(xiě)模式打開(kāi)名為 example.txt 的文件,如果文件不存在,則創(chuàng)建一個(gè)新的空文件。
二、writelines() 方法
writelines() 方法將一個(gè)字符串列表寫(xiě)入文件。例如:
with open('example.txt', 'w') as f: lines = ['Hello, world!', 'Welcome to Python'] f.writelines(lines)
writelines() 方法是用于將字符串列表寫(xiě)入文件的方法。但是需要注意以下幾點(diǎn):
- writelines() 方法只接受字符串列表作為參數(shù)。如果要寫(xiě)入單個(gè)字符串,請(qǐng)使用 write() 方法。
- writelines() 方法不會(huì)在字符串之間自動(dòng)添加換行符,需要手動(dòng)將其添加到字符串中。
- writelines() 方法不會(huì)在列表的最后添加空行,如果需要在最后一行添加空行,請(qǐng)手動(dòng)添加一個(gè)包含換行符的空字符串。
- 在使用 writelines() 方法時(shí),需要保證傳遞的參數(shù)是一個(gè)字符串列表。如果參數(shù)是一個(gè)生成器對(duì)象,需要將其轉(zhuǎn)換為列表再傳遞。
lines = ['line 1\n', 'line 2\n', 'line 3\n'] with open('example.txt', 'w') as f: f.writelines(lines)
方法的高級(jí)用法主要是將迭代器對(duì)象中的數(shù)據(jù)寫(xiě)入文件,而不需要將其一次性轉(zhuǎn)換為列表。這種用法對(duì)于大型數(shù)據(jù)集合很有用,因?yàn)樗梢灾饌€(gè)迭代元素,避免將所有元素存儲(chǔ)在內(nèi)存中。
def generate_lines(): yield 'line 1\n' yield 'line 2\n' yield 'line 3\n' with open('example.txt', 'w') as f: f.writelines(generate_lines())
在上面的代碼中,generate_lines() 函數(shù)返回一個(gè)迭代器對(duì)象,它逐個(gè)生成字符串。然后,將這個(gè)迭代器對(duì)象傳遞給 writelines() 方法,writelines() 方法將迭代器對(duì)象中的字符串逐個(gè)寫(xiě)入文件。
三、print() 函數(shù)
可以使用 print() 函數(shù)向文件寫(xiě)入內(nèi)容,需要指定 file 參數(shù)為打開(kāi)的文件對(duì)象。例如:
with open('example.txt', 'w') as f: print('Hello, world!', file=f)
以下是 print() 函數(shù)的常用參數(shù)及其詳細(xì)介紹:
print() 函數(shù)是 Python 中用于打印輸出信息到終端的內(nèi)置函數(shù)。print() 函數(shù)可以接受多個(gè)參數(shù),并將它們打印輸出到終端。
以下是 print() 函數(shù)的常用參數(shù)及其詳細(xì)介紹:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- *objects:一個(gè)或多個(gè)要打印輸出的對(duì)象,可以是字符串、數(shù)字、變量等。可以接受任意數(shù)量的參數(shù)。
- sep:用于分隔多個(gè)參數(shù)的字符,默認(rèn)是一個(gè)空格。在打印輸出多個(gè)參數(shù)時(shí),sep 參數(shù)將作為它們之間的分隔符。
- end:用于表示打印輸出結(jié)束的字符,默認(rèn)是一個(gè)換行符。在打印輸出最后一個(gè)參數(shù)之后,end 參數(shù)將作為它們之后的字符。
- file:用于指定輸出的文件對(duì)象,默認(rèn)是標(biāo)準(zhǔn)輸出設(shè)備 sys.stdout??梢詫⑤敵鲋囟ㄏ虻轿募校员銓⑤敵霰4娴轿募卸皇墙K端。
- flush:用于指定是否立即刷新緩沖區(qū),默認(rèn)為 False。如果將 flush 參數(shù)設(shè)置為 True,則輸出將立即寫(xiě)入文件,而不是等待緩沖區(qū)滿了再寫(xiě)入。
# 打印輸出單個(gè)字符串 print("Hello World") # 打印輸出多個(gè)參數(shù) print("Name:", "John", "Age:", 25) # 使用自定義分隔符 print("Name:", "John", "Age:", 25, sep="-") # 使用自定義結(jié)束符 print("Name:", "John", "Age:", 25, end=".") # 將輸出重定向到文件 with open('output.txt', 'w') as f: print("Hello World", file=f) # 立即刷新緩沖區(qū) print("Hello World", flush=True)
print(string, *args, **kwargs)
- string:格式化字符串,其中包含要打印輸出的信息和格式化占位符。格式化占位符用花括號(hào) {} 包裹,并指定要填充的數(shù)據(jù)的類型、寬度、精度等信息。
- *args:可選參數(shù),包含要填充到格式化字符串中的數(shù)據(jù)。
- **kwargs:可選參數(shù),包含鍵值對(duì),用于指定格式化字符串中的占位符的值。
name = "John" age = 25 # 使用占位符輸出字符串 print("Name: {}, Age: {}".format(name, age)) # 使用關(guān)鍵字參數(shù)輸出字符串 print("Name: {n}, Age: {a}".format(n=name, a=age)) # 使用 f-string 輸出字符串 print(f"Name: {name}, Age: {age}")
四、使用 csv 模塊
可以使用 csv 模塊將數(shù)據(jù)寫(xiě)入 CSV 文件。例如:
import csv with open('example.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerow(['Name', 'Age', 'Gender']) writer.writerow(['Alice', 25, 'F']) writer.writerow(['Bob', 30, 'M'])
五、使用 json 模塊
可以使用 json 模塊將 Python 對(duì)象寫(xiě)入 JSON 文件。例如:
import json data = { 'name': 'Alice', 'age': 25, 'gender': 'F' } with open('example.json', 'w') as f: json.dump(data, f)
到此這篇關(guān)于Python實(shí)現(xiàn)將內(nèi)容寫(xiě)入文件的五種方法總結(jié)的文章就介紹到這了,更多相關(guān)Python內(nèi)容寫(xiě)入文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
6個(gè)實(shí)用的Python自動(dòng)化腳本詳解
每天你都可能會(huì)執(zhí)行許多重復(fù)的任務(wù),例如閱讀 pdf、播放音樂(lè)、查看天氣、打開(kāi)書(shū)簽、清理文件夾等等,使用自動(dòng)化腳本,就無(wú)需手動(dòng)一次又一次地完成這些任務(wù),非常方便??旄S小編一起試一試吧2022-01-01python實(shí)現(xiàn)倒計(jì)時(shí)的示例
這篇文章主要介紹了python實(shí)現(xiàn)的倒計(jì)時(shí)的示例,需要的朋友可以參考下2014-02-02Django項(xiàng)目創(chuàng)建的圖文教程
本文主要介紹了Django項(xiàng)目創(chuàng)建的圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Android Q之氣泡彈窗的實(shí)現(xiàn)示例
這篇文章主要介紹了Android Q之氣泡彈窗的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Python循環(huán)語(yǔ)句之break與continue的用法
這篇文章主要介紹了Python循環(huán)語(yǔ)句之break與continue的用法,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10tensorflow 實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換
今天小編就為大家分享一篇tensorflow 實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例
這篇文章主要介紹了pytorch教程中網(wǎng)絡(luò)和損失函數(shù)的可視化,文中附含詳細(xì)的代碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09matlab中imadjust函數(shù)的作用及應(yīng)用舉例
這篇文章主要介紹了matlab中imadjust函數(shù)的作用及應(yīng)用舉例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02