Phương thức chuỗi
Thí dụ
Thay thế từ "chuối":
txt = "Tôi thích chuối"
x = txt.replace ["chuối", "táo"]
print[x]
Hãy tự mình thử »
Định nghĩa và cách sử dụng
Phương thức replace[]
thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác.
Lưu ý: Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định. All occurrences of the specified phrase will be replaced, if nothing else is specified.
Cú pháp
String.replace [OldValue, NewValue, Count]
Giá trị tham số
OldValue | Yêu cầu. Chuỗi để tìm kiếm |
NewValue | Yêu cầu. Chuỗi để thay thế giá trị cũ bằng |
đếm | Không bắt buộc. Một số chỉ định có bao nhiêu lần xuất hiện của giá trị cũ bạn muốn thay thế. Mặc định là tất cả các lần xuất hiện |
Nhiều ví dụ hơn
Thí dụ
Thay thế tất cả sự xuất hiện của từ "một":
TXT = "Một là một con ngựa đua, hai hai cũng là một."
x = txt.replace ["One", "ba"]
print[x]
Hãy tự mình thử »
Thí dụ
Định nghĩa và cách sử dụng
TXT = "Một là một con ngựa đua, hai hai cũng là một."
x = txt.replace ["One", "ba"]
print[x]
Hãy tự mình thử »
Phương thức chuỗi
Tôi có một tệp chứa các số và chữ cái và tôi muốn thay thế tất cả các số thành các từ [ví dụ: 8 được chuyển đổi thành tám]. Vâng, tôi chỉ không có cách để kiểm tra xem có số trong tệp của mình không. Cách hiệu quả tốt nhất để làm điều này là gì?
Martin Evans
44.5K16 Huy hiệu vàng80 Huy hiệu bạc92 Huy hiệu Đồng16 gold badges80 silver badges92 bronze badges
Hỏi ngày 14 tháng 10 năm 2016 lúc 9:51Oct 14, 2016 at 9:51
2
Sau đây sẽ hoạt động, nó đọc một tệp đầu vào, sử dụng regex để tìm tất cả các số và thư viện NUM2Words để thay thế từng văn bản bằng văn bản:
import re
import num2words
with open['input.txt'] as f_input:
text = f_input.read[]
text = re.sub[r"[\d+]", lambda x: num2words.num2words[int[x.group[0]]], text]
with open['output.txt', 'w'] as f_output:
f_output.write[text]
Thư viện num2words
có thể được cài đặt bằng cách sử dụng:
pip install num2words
Vì vậy, nếu tệp văn bản đầu vào của bạn chứa:
Today 1000 people wrote 500 words to make 321 questions.
Đầu ra sẽ là:
Today one thousand people wrote five hundred words to make three hundred and twenty-one questions.
Đã trả lời ngày 14 tháng 10 năm 2016 lúc 11:05Oct 14, 2016 at 11:05
Martin Evansmartin EvansMartin Evans
44.5K16 Huy hiệu vàng80 Huy hiệu bạc92 Huy hiệu Đồng16 gold badges80 silver badges92 bronze badges
Hỏi ngày 14 tháng 10 năm 2016 lúc 9:51
import re
text = open['text_numbers.txt']
for line in text:
line = line.strip[]
y = re.findall['[[0-9]+]',line]
Sau đây sẽ hoạt động, nó đọc một tệp đầu vào, sử dụng regex để tìm tất cả các số và thư viện NUM2Words để thay thế từng văn bản bằng văn bản:Oct 14, 2016 at 10:01
Thư viện num2words
có thể được cài đặt bằng cách sử dụng:
Vì vậy, nếu tệp văn bản đầu vào của bạn chứa:
Đầu ra sẽ là:
Đã trả lời ngày 14 tháng 10 năm 2016 lúc 11:05
Martin Evansmartin EvansOct 14, 2016 at 9:57
Đây chỉ là để tìm các số có trong tệp, nếu bạn không biết cách thay thế, hãy sử dụng từ điển.Aks
Đã trả lời ngày 14 tháng 10 năm 2016 lúc 10:013 silver badges11 bronze badges
Câu hỏi này cũng đã được trả lời ở đây: Thay thế văn bản trong một tệp bằng Python
In [1]: from num2words import num2words
In [2]: num2words[54]
Out[2]: u'fifty-four'
In [3]: num2words[8]
Out[3]: u'eight'
Nếu bạn muốn thảo luận về người dùng bộ nhớ và các chủ đề khác, câu hỏi này sẽ thực hiện thủ thuật: tìm kiếm chuỗi trong tệp txt pythonOct 14, 2016 at 10:00
Một số người đã giải thích việc sử dụng khác nhau của chức năng khác nhau để đọc một văn bản từ một tệp, nhưng trong trường hợp của bạn, có vẻ như nó không phải là một tệp lớn nên liên kết đầu tiên sẽ cung cấp cho bạn câu trả lời.Rahul K P
Chỉ cần nhớ, khi bạn phân tích tệp TXT, thậm chí "8" là một chuỗi.4 gold badges34 silver badges52 bronze badges