簡體   English   中英

如何以特定格式寫入文本文件

[英]How to write to a text file in a specific format

我正在使用 Streamlit 和 Python 為我的項目創建一個 GUI。 我有一個關於 .txt 文件的特殊問題,這是我現在正在處理的代碼:

with open('data/test20/testing.txt', 'w+') as txt_reader:
    string = st.text_input('ENTER TEXT', value='', max_chars=None, key=None, type='default')
    txt_reader.write(string)
    st.write(string)

有了這個,我要求輸入一個句子,然后將該句子添加到我的 testing.txt 文件中。 這句話后面應該有一些東西,所以我的 model 可以分析它。 因此,例如,如果用戶輸入“設置很簡單。 ”,在我的文本文件中我應該有“設置很簡單。####Set=O up=O was=O easy=O.=O ”所以我需要添加“ #### ”和包括標點符號在內的每個單詞,並為這些項目中的每一項添加“ =O ”。

我將使用res = string.split()將句子拆分為單詞和標點符號,但如何添加 rest 的東西?

提前致謝!

我們可以將問題分為兩部分:1. 將文本拆分為單詞和標點符號列表,以及 2. 將它們組合起來並在每個部分后添加=O

對於第一部分,您提到了 string.split(),但請注意,此方法只會根據空格拆分句子,不會根據標點符號拆分句子,因此Set up was easy. 會讓你['Set', 'up', 'was', 'easy.']這不是你想要的。 獲得我們想要的結果的一種簡單方法是使用re module ,這是一個示例代碼:

import re
sentence = 'Set up was easy.'
words = re.findall(r"[\w']+|[.,!?;]", sentence)

結果是words列表將是['Set', 'up', 'was', 'easy', '.'] ,很好。

對於第二部分,我們要獲取列表中的每個元素並將其與“=O”連接,將所有元素添加到一個大字符串中。 我們可以用這段代碼來做到這一點:

result = sentence + "####" + " ".join([word + "=O" for word in words])

最后,我們可以將上面的代碼簡化為:

import re

sentence = "Set up was easy."
sentence += "####"
result = sentence + " ".join([word + "=O" for word in re.findall(r"[\w']+|[.,!?;]", sentence)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM