溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

發(fā)布時間:2021-10-21 12:26:18 來源:億速云 閱讀:152 作者:iii 欄目:開發(fā)技術

本篇內(nèi)容介紹了“Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

方法一:不使用任何外部模塊搜索和替換文本

讓我們看看如何在文本文件中搜索和替換文本。首先,我們創(chuàng)建一個文本文件,我們要在其中搜索和替換文本。將此文件設為 Haiyong.txt,內(nèi)容如下:

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

要替換文件中的文本,我們將使用 open() 函數(shù)以只讀方式打開文件。然后我們將 t=read 并使用 read() 和 replace() 函數(shù)替換文本文件中的內(nèi)容。

語法: open(file, mode=‘r')

參數(shù):

file:文件的位置
mode : 要打開文件的模式

然后我們會以寫模式打開同一個文件,寫入替換的內(nèi)容。

# 創(chuàng)建一個變量并存儲我們要搜索的文本
search_text = "資源"

# 創(chuàng)建一個變量并存儲我們要添加的文本
replace_text = "進群"

# 使用 open() 函數(shù)以只讀模式打開我們的文本文件
with open(r'Haiyong.txt', 'r',encoding='UTF-8') as file:

	# 使用 read() 函數(shù)讀取文件內(nèi)容并將它們存儲在一個新變量中
	data = file.read()

	# 使用 replace() 函數(shù)搜索和替換文本
	data = data.replace(search_text, replace_text)

# 以只寫模式打開我們的文本文件以寫入替換的內(nèi)容
with open(r'Haiyong.txt', 'w',encoding='UTF-8') as file:

	# 在我們的文本文件中寫入替換的數(shù)據(jù)
	file.write(data)

# 打印文本已替換
print("文本已替換")

輸出:

文本已替換

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

方法二:使用 pathlib2 模塊搜索和替換文本

讓我們看看如何使用 pathlib2 模塊搜索和替換文本。首先,我們創(chuàng)建一個文本文件,我們要在其中搜索和替換文本。將此文件設為 Haiyong2.txt,內(nèi)容如下:

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

使用以下命令安裝 pathlib2 模塊:

pip install pathlib2

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

該模塊提供表示文件系統(tǒng)路徑的類,其語義適用于不同的操作系統(tǒng)。要使用 pathlib2 模塊替換文本,我們將使用 pathlib2 模塊的 Path 方法。

語法:路徑(文件)

參數(shù):

file:要打開的文件的位置

在下面的代碼中,我們將文本文件中的“獲取更多學習資料”替換為“找群主領取一本實體書”。使用 pathlib2 模塊。

代碼:

# 從 pathlib2 模塊導入路徑
from pathlib2 import Path

# 創(chuàng)建一個函數(shù)來替換文本
def replacetext(search_text, replace_text):

	# 使用Path函數(shù)打開文件
	file = Path(r"Haiyong2.txt")

	# 讀取文件內(nèi)容并將其存儲在數(shù)據(jù)變量中
	data = file.read_text()

	# 使用替換功能替換文本
	data = data.replace(search_text, replace_text)

	# 在文本文件中寫入替換的數(shù)據(jù)
	file.write_text(data)

	# 返回“文本已替換”字符串
	return "文本已替換"


# 創(chuàng)建一個變量并存儲我們要搜索的文本
search_text = "Python"

# 創(chuàng)建一個變量并存儲我們要更新的文本
replace_text = "Java"

# 調(diào)用replacetext函數(shù)并打印返回的語句
print(replacetext(search_text, replace_text))

輸出:

文本已替換

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

方法 3:使用正則表達式模塊搜索和替換文本

讓我們看看如何使用 regex 模塊搜索和替換文本。我們將使用 re.sub() 方法來替換文本。

語法: re.sub(pattern, repl, string, count=0, flags=0)

參數(shù):

repl :要添加的文本
string :要替換的文本

代碼:

# 導入 re 模塊
import re

# 創(chuàng)建一個函數(shù)來替換文本
def replacetext(search_text,replace_text):

	# 以讀寫模式打開文件
	with open('SampleFile.txt','r+') as f:

		# 讀取文件數(shù)據(jù)并將其存儲在文件變量中
		file = f.read()
		
		# 用文件數(shù)據(jù)中的字符串替換模式
		file = re.sub(search_text, replace_text, file)

		# 設置位置到頁面頂部插入數(shù)據(jù)
		f.seek(0)
		
		# 在文件中寫入替換數(shù)據(jù)
		f.write(file)

		# 截斷文件大小
		f.truncate()

	# 返回“文本已替換”字符串
	return "文本已替換"

# 創(chuàng)建一個變量并存儲我們要搜索的文本
search_text = "World"

#創(chuàng)建一個變量并存儲我們要更新的文本
replace_text = "Universe"

# 調(diào)用replacetext函數(shù)并打印返回的語句
print(replacetext(search_text,replace_text))

輸出:

文本已替換

Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些

方法四:使用文件輸入

讓我們看看如何使用 fileinput 模塊搜索和替換文本。為此,我們將使用 FileInput() 方法迭代文件的數(shù)據(jù)并替換文本。

語法: FileInput(files=None, inplace=False, backup=”, *, mode=‘r')

參數(shù):

  • files : 文本文件的位置

  • mode : 要打開文件的模式

  • inplace :如果值為 True 則文件被移動到備份文件并且標準輸出被定向到輸入文件

  • backup : 備份文件的擴展名

代碼:

# 從文件輸入模塊導入文件輸入
from fileinput import FileInput

# 創(chuàng)建一個函數(shù)來替換文本
def replacetext(search_text, replace_text):

	# 使用 FileInput 打開文件
	with FileInput("Haiyong4.txt", inplace=True,
				backup='.bak') as f:

		# 使用replace函數(shù)迭代每個并使用replace_text更改search_text
		for line in f:
			print(line.replace(search_text,
							replace_text), end='')

	# 返回“文本已替換”字符串
	return "文本已替換"


# 創(chuàng)建一個變量并存儲我們要搜索的文本
search_text = "unreplaced"

# 創(chuàng)建一個變量并存儲我們要更新的文本
replace_text = "replaced"

# 調(diào)用replacetext函數(shù)并打印返回的語句
print(replacetext(search_text, replace_text))

輸出:

文本已替換

“Python中搜索和替換文件中的文本的實現(xiàn)方法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI