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

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 文件中。这句话后面应该有一些东西,这样我的模型就可以对其进行分析。因此,例如,如果用户输入“设置很简单。”,在我的文本文件中我应该有“设置很简单。####Set=O up =O was=O easy=O .=O" 所以我需要添加 "####" 和每个单词包括标点符号并添加 "=O" 这些项目中的每一项。

我将使用 res = string.split() 将句子拆分为单词和标点符号,但如何添加其余部分?

提前致谢!

我们可以将问题分为两部分: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)])