刪除檔案中的數字

华科云商小雪發表於2024-04-12

要從檔案中刪除數字,你可以使用Python的正規表示式模組 re 。下面是一個簡單的示例,演示瞭如何從檔案中刪除數字:

1、問題背景

你有一個包含數字和非數字字元的檔案,你想從檔案中刪除所有數字,只保留非數字字元。例如,如果你的檔案是這樣的:

car1 auto1 automobile1 machine4 motorcar1

bridge1 span5
road1 route2

你想把它變成這樣:

car auto automobile machine motorcar

bridge span
road route

2、解決方案

有幾種方法可以從檔案中刪除數字。下面介紹其中四種方法:

方法1:使用正規表示式

你可以使用正規表示式來匹配和刪除檔案中的數字。例如,你可以使用下面的程式碼:


import 
re

import fileinput

for line in fileinput. input( "your_file.txt", inplace = True):
print re. sub( "\d+", "", line),

上面的程式碼使用 regular expressions (正規表示式) 模組來匹配和刪除檔案中的數字。 re.sub("\d+", "", line) 這行程式碼使用 re.sub 函式來匹配和替換檔案中的數字。 "\d+" 這個正規表示式匹配一個或多個數字。 "" 表示用一個空字串來替換匹配的數字。 fileinput 模組允許你逐行讀取檔案,並對每行進行操作。 inplace=True 引數告訴 fileinput 模組對原始檔案進行修改,而不是建立一個新的檔案。

方法2:使用 str.translate 函式

str.translate 函式可以用來刪除檔案中的數字。例如,你可以使用下面的程式碼:


import 
fileinput

import string

for line in fileinput. input( "your_file.txt", inplace = True):
print line. translate( None, string. digits),

上面的程式碼使用 str.translate 函式來刪除檔案中的數字。 line.translate(None, string.digits) 這行程式碼使用 str.translate 函式來刪除字串中的數字。 None 引數告訴 str.translate 函式不使用翻譯表。 string.digits 是一個包含所有數字字元的字串。

方法3:使用 with 語句

你也可以使用 with 語句來刪除檔案中的數字。例如,你可以使用下面的程式碼:


with 
open(
'input.txt', 
'r') 
as 
f1, 
open(
'output.txt', 
'w') 
as 
f2:

f2. write( "". join([ c for c in f1. read() if not c. isdigit()]))

上面的程式碼使用 with 語句來開啟兩個檔案。 input.txt 檔案以只讀模式開啟。 output.txt 檔案以寫入模式開啟。 "".join([c for c in f1.read() if not c.isdigit()]) 這行程式碼使用列表解析來從 input.txt 檔案中讀取字元,並過濾掉數字字元。然後,它把剩下的字元連線成一個字串,並寫入 output.txt 檔案中。

方法4:使用 os.replace 函式

你也可以使用 os.replace 函式來刪除檔案中的數字。例如,你可以使用下面的程式碼:


import 
os


with open( 'file', 'r') as f:
data = f. read()
data = data. translate( None, '0123456789')
with open( 'file', 'w') as f:
f. write( data)

上面的程式碼使用 os.replace 函式來刪除檔案中的數字。 with open('file', 'r') as f: 這行程式碼使用 with 語句來開啟檔案。 data = f.read() 這行程式碼使用 read 方法來讀取檔案中的內容。 data = data.translate(None, '0123456789') 這行程式碼使用 str.translate 函式來刪除字串中的數字。 with open('file', 'w') as f: 這行程式碼使用 with 語句來開啟檔案。 f.write(data) 這行程式碼使用 write 方法來把字串寫入檔案中。

在這個例子中, remove_numbers_from_file 函式接受輸入檔名和輸出檔名作為引數。它首先讀取輸入檔案的內容,然後使用正規表示式 r'\d+' 來匹配數字,並使用 re.sub 函式將其替換為空字串,從而刪除數字。最後,它將結果寫入輸出檔案。

這樣我們可以將 'input.txt' 'output.txt' 替換為實際的輸入檔案和輸出檔名。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034537/viewspace-3012291/,如需轉載,請註明出處,否則將追究法律責任。

相關文章