欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3中處理和操作純文本文件的詳細(xì)教程

 更新時(shí)間:2024年06月27日 11:59:32   作者:白如意i  
本教程將簡(jiǎn)要描述 Python 能夠處理的一些文件格式,在簡(jiǎn)要介紹這些文件格式之后,你將學(xué)習(xí)如何在 Python 3 中打開、讀取和寫入文本文件,完成后,你將能夠處理 Python 中的任何純文本文件,需要的朋友可以參考下

簡(jiǎn)介

Python 是一個(gè)處理數(shù)據(jù)的強(qiáng)大工具。編程中最常見的任務(wù)之一就是讀取、寫入或操作數(shù)據(jù)。因此,了解如何處理存儲(chǔ)不同類型數(shù)據(jù)的不同文件格式尤為重要。

例如,考慮一個(gè)檢查用戶訪問控制列表的 Python 程序。你的用戶列表可能存儲(chǔ)在一個(gè)文本文件中,允許你檢查訪問權(quán)限或修改權(quán)限。使用 Python,能夠打開、讀取、寫入和關(guān)閉文件將有助于處理此類任務(wù)。

本教程將簡(jiǎn)要描述 Python 能夠處理的一些文件格式。在簡(jiǎn)要介紹這些文件格式之后,你將學(xué)習(xí)如何在 Python 3 中打開、讀取和寫入文本文件。完成后,你將能夠處理 Python 中的任何純文本文件。

先決條件

在進(jìn)行本教程之前,你應(yīng)該已經(jīng)安裝了 Python 3,并在計(jì)算機(jī)上設(shè)置了本地編程環(huán)境。如果還沒有這樣做,你可以按照適用于你操作系統(tǒng)的相應(yīng)安裝和設(shè)置指南進(jìn)行設(shè)置:

  • Ubuntu 22.04 或 Debian 8
  • CentOS 7
  • Mac OS X
  • Windows 10

背景

Python 非常靈活,可以輕松處理多種不同的文件格式,包括但不限于以下內(nèi)容:

文件類型描述
純文本純文本文件存儲(chǔ)表示僅包含字符(或字符串)的數(shù)據(jù),并排除任何結(jié)構(gòu)化元數(shù)據(jù)
CSV逗號(hào)分隔值文件使用逗號(hào)(或其他分隔符)來結(jié)構(gòu)化存儲(chǔ)的數(shù)據(jù),允許數(shù)據(jù)以表格格式保存
HTML超文本標(biāo)記語言文件存儲(chǔ)用于由瀏覽器顯示的結(jié)構(gòu)化數(shù)據(jù),通常與網(wǎng)站一起使用
JSONJavaScript 對(duì)象表示法是一種簡(jiǎn)單高效的格式,使其成為存儲(chǔ)和傳輸結(jié)構(gòu)化數(shù)據(jù)最常用的格式之一

本教程將重點(diǎn)介紹如何處理純文本文件。

步驟 1 —— 創(chuàng)建文本文件

在我們開始在 Python 中工作之前,我們需要確保有一個(gè)要處理的文件。為此,請(qǐng)打開你的代碼編輯器,并創(chuàng)建一個(gè)名為 days.txt 的新純文本文件。

在新文件中,輸入幾行文本,列出一周的天數(shù):

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

接下來,保存你的文件,并記下其位置。在本例中,我們的用戶 sammy 將文件保存在 /home/sammy/days.txt。這在后續(xù)步驟中將非常重要,因?yàn)槲覀儗⒃?Python 中打開該文件。

現(xiàn)在你已經(jīng)有了要處理的文件,可以開始編寫代碼了。

步驟 2 —— 打開文件

在你的代碼編輯器中,創(chuàng)建一個(gè)新的 Python 文件,并將其命名為 files.py。

要在 Python 中打開一個(gè)文件,我們首先需要一種將磁盤上的文件與 Python 中的變量關(guān)聯(lián)的方法。這個(gè)過程稱為打開文件,而變量稱為文件句柄。我們首先告訴 Python 文件的位置。文件的位置通常被稱為文件路徑 —— 在本例中是 /home/sammy/days.txt。創(chuàng)建一個(gè)變量來存儲(chǔ)這個(gè)路徑信息。

path = '/home/sammy/days.txt'

現(xiàn)在,你可以使用 Python 的 open() 函數(shù)來打開我們的 days.txt 文件。open() 函數(shù)需要文件路徑作為其第一個(gè)參數(shù)。該函數(shù)還接受許多其他參數(shù)。然而,最重要的是可選的 mode 參數(shù)。這是一個(gè)可選的字符串,指定打開文件的模式。你選擇的模式將取決于你希望對(duì)文件進(jìn)行的操作。以下是一些可用的模式:

  • 'r':用于從文件中讀取數(shù)據(jù)
  • 'w':用于向文件中寫入數(shù)據(jù)
  • 'a':用于向文件中追加數(shù)據(jù)
  • 'r+':用于在同一文件中進(jìn)行讀取和寫入

在本例中,我們只想從文件中讀取數(shù)據(jù),因此我們將使用 'r' 模式。使用 open() 函數(shù)打開 days.txt 文件,并將生成的文件句柄分配給變量 days_file。

days_file = open(path, 'r')

現(xiàn)在你已經(jīng)打開了文件,接下來的步驟將指導(dǎo)你讀取其內(nèi)容。

步驟 3 —— 讀取文件

由于我們已經(jīng)打開了文件,現(xiàn)在可以通過分配給它的變量來操作它(即從中讀?。?。Python 提供了三種相關(guān)的操作來從文件中讀取信息。讓我們花點(diǎn)時(shí)間了解一下它們各自是如何工作的。

使用 read

第一個(gè)操作 read() 返回整個(gè)文件的內(nèi)容作為一個(gè)字符串。例如:

days_file.read()

結(jié)果將是:

'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n'

使用 readline

第二個(gè)操作 readline() 返回文件的下一行,包括下一個(gè)換行符在內(nèi)的文本。簡(jiǎn)單來說,這個(gè)操作將逐行讀取文件。

days_file.readline()

結(jié)果將是:

'Monday\n'

一旦使用 readline 操作讀取了一行,文件的當(dāng)前讀取位置將移動(dòng)到下一行。如果再次調(diào)用這個(gè)操作,它將返回文件中的下一行,如下所示:

days_file.readline()

'Tuesday\n'

使用 readlines

最后一個(gè)操作 readlines() 返回文件中每一行的列表,其中列表的每個(gè)項(xiàng)目代表一行。

days_file.readlines()

['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n']

在讀取文件時(shí)需要記住的一點(diǎn)是,一旦使用了其中一個(gè)讀取操作,就不能再次讀取文件。例如,如果首先運(yùn)行 days_file.read(),然后是 days_file.readlines(),第二個(gè)操作將返回一個(gè)空字符串。因此,每當(dāng)你想要從文件中讀取時(shí),你必須首先打開一個(gè)新的文件變量或使用 seek() 方法,這超出了本教程的范圍。如果你想了解更多,Python 對(duì)這些方法有很好的文檔。

現(xiàn)在我們已經(jīng)從文件中讀取了內(nèi)容,讓我們學(xué)習(xí)如何寫入新文件。

步驟 4 —— 寫入文件

在這一步中,你將寫入一個(gè)新文件,其中包括標(biāo)題 Days of the Week,后面跟著第一個(gè)文件的內(nèi)容。首先,創(chuàng)建一個(gè) title 變量。

title = 'Days of the Week\n'

你還需要將一周的天數(shù)存儲(chǔ)在一個(gè)變量中,我們將其稱為 days。這段代碼以讀模式打開文件,讀取文件,并將讀取操作返回的輸出存儲(chǔ)在我們的新變量 days 中。為了更容易理解,步驟 2 中的代碼已經(jīng)包含在內(nèi)。

path = '/home/sammy/days.txt'
days_file = open(path, 'r')
days = days_file.read()

現(xiàn)在你有了標(biāo)題和一周的天數(shù)的變量,你可以開始寫入新文件。首先,指定文件的位置。同樣,我們將使用目錄 /home/sammy/,所以我們的路徑將是 /home/sammy/new_days.txt。然后,你可以使用 open() 函數(shù)以寫模式打開新文件,指定 'w' 模式。

new_path = '/home/sammy/new_days.txt'
new_days = open(new_path, 'w')

一旦打開了新文件,你可以使用 write() 方法添加數(shù)據(jù)。這個(gè)方法接受一個(gè)字符串參數(shù),并將該數(shù)據(jù)寫入文件。如果你想在文件中開始新的一行,你必須顯式提供換行符 \n,這在你將 'Days of the Week\n' 賦給 title 變量時(shí)已經(jīng)包含在內(nèi)。

將標(biāo)題寫入文件,然后是一周的天數(shù)。可能有助于添加一些 print 語句來跟蹤我們要寫入文件的內(nèi)容,這通常用于跟蹤腳本的進(jìn)度。

new_days.write(title)
print(title)

new_days.write(days)
print(days)

最后,當(dāng)你完成對(duì)文件的操作時(shí),關(guān)閉文件是很重要的。

步驟 5 —— 關(guān)閉文件

關(guān)閉文件確保磁盤上的文件與文件句柄之間的連接已經(jīng)結(jié)束。關(guān)閉文件還確保其他程序能夠訪問它們,并保持你的數(shù)據(jù)安全。如果你沒有像 步驟 6 中描述的那樣使用 with 語句,一定要確保關(guān)閉你的文件。在這個(gè)例子中,使用 close() 方法關(guān)閉所有文件。

days_file.close()
new_days.close()

現(xiàn)在腳本完成了對(duì)文件的操作,它使用 close() 方法釋放了文件句柄。

步驟 6 —— 使用 with 語句(可選)

在 Python 中處理文件的推薦方式(通常稱為Pythonic方式)是使用語言的一個(gè)特性,稱為 with 語句。這些語句是設(shè)置一個(gè)上下文進(jìn)行工作的簡(jiǎn)寫方式,一旦上下文結(jié)束,最終的細(xì)節(jié)將自動(dòng)處理,以防止常見的錯(cuò)誤。在處理文件的情況下,with 語句將自動(dòng)關(guān)閉文件,這樣一旦你完成任務(wù),就不會(huì)有文件句柄殘留。

與 Python 中的任何塊一樣,比如函數(shù)定義、if 語句或循環(huán),with 語句采用一個(gè)簡(jiǎn)單語句后跟一個(gè) :,然后是一個(gè)縮進(jìn)的代碼塊。下面是一個(gè)打開文件并打印其內(nèi)容的代碼示例:

with open('/home/sammy/days.txt', 'r') as days_file:
    days = days_file.read()
    print(days)

讓我們逐步了解這段代碼的作用。與之前一樣,我們使用 Python 的內(nèi)置 open() 函數(shù)打開文件,傳遞文件路徑和模式參數(shù)。然而,由于我們使用了 with 語句,而不是使用 = 將結(jié)果的文件句柄分配給一個(gè)變量,我們使用 as 關(guān)鍵字進(jìn)行分配。這是完整 with 語句語法的一部分:

with action as result:
    . . .

在 : 之后,我們移到下一行并縮進(jìn)我們的代碼,這是 Python 組織功能塊的方式。與之前一樣,我們可以在 days_file 變量中訪問文件句柄,因此我們可以調(diào)用 read() 方法來獲取所有內(nèi)容,并將其 print() 出來。

請(qǐng)注意,這里沒有調(diào)用 close() 方法。這是因?yàn)橐坏┐a離開這個(gè)塊(也就是說,一旦下一行的代碼不再縮進(jìn),或者文件結(jié)束了),with 語句的上下文就知道自動(dòng)關(guān)閉這些文件。這樣做的好處不僅在于你不需要記住每次都關(guān)閉文件,而且你處理特定文件的所有邏輯在該塊內(nèi)視覺上和邏輯上都是清晰的。這種結(jié)構(gòu)有助于保持代碼的清晰和可讀性。

有了這個(gè)理解,讓我們使用 with 語句重新編寫我們之前的代碼:

with open(path, 'r') as days_file, open(new_path, 'w') as new_days:
    days = days_file.read()
    
    new_days.write(title)
    new_days.write(days)
    
print(title)
print(days)

現(xiàn)在代碼更加有組織。我們首先像之前一樣定義了一些變量:我們兩個(gè)文件的路徑和我們將用于新文件標(biāo)題的標(biāo)題。之后,我們開始我們的 with 語句,打開我們的兩個(gè)文件,并將它們的連接存儲(chǔ)在適當(dāng)命名的變量中。與之前一樣,我們讀取了 days_file 的內(nèi)容,然后將標(biāo)題和這些內(nèi)容寫入了 new_days。最后,我們通過取消縮進(jìn)代碼塊來結(jié)束該塊,以打印我們讀取的 title 和 days 的值。

雖然有一些情況下你會(huì)想要使用之前描述的 close() 方法,而且了解它的工作原理很重要,但在 Python 中處理文件時(shí),你通常會(huì)使用 with 語句。

步驟 7 — 檢查我們的代碼

在運(yùn)行代碼之前,最好確保一切看起來都是正確的。最終的產(chǎn)品應(yīng)該是這樣的:

path = '/home/sammy/days.txt'
new_path = '/home/sammy/new_days.txt'
title = 'Days of the week\n'

with open(path, 'r') as days_file, open(new_path, 'w') as new_days:
    days = days_file.read()
    
    new_days.write(title)
    new_days.write(days)
    
print(title)
print(days)

保存代碼后,打開終端并運(yùn)行你的 Python 腳本,就像這樣:

python files.py

輸出將如下所示:

Days of the Week

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

現(xiàn)在,通過打開新文件(new_days.txt)來完全檢查代碼是否運(yùn)行正常。如果一切順利,它應(yīng)該包含以下內(nèi)容:

Days of the Week
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

結(jié)論

在本教程中,我們學(xué)習(xí)了如何在 Python 3 中處理和操作純文本文件?,F(xiàn)在你可以在 Python 中打開、讀取、寫入和關(guān)閉文件,并且可以繼續(xù)在 Python 中處理自己的數(shù)據(jù)。Python 在處理輸入和輸出時(shí)提供了許多其他有用的方法,并且還提供了文檔以便進(jìn)一步學(xué)習(xí)。

以上就是Python3中處理和操作純文本文件的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Python3處理和操作文本文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論