繁体   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