如果在文本文件中的两个不同字符之间,则Python

2024-10-04 07:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我基本上是在尝试使用python进行查找和替换,但是要使它只应用于“{s:”和下面的“}”之间的字符串。我有一个包含以下内容的长文本文件:

["c", "DashedSentence", {s: "Yo limpio mi cuarto todos los sábados."},
      "Question",       {q: "¿Cuándo limpio mi cuarto?",
                         as: ["Todos los sábados.",
                              "Todos los domingos."]}],

["c", "DashedSentence", {s: "Nosotros contestamos el correo cada semana."},
      "Question",       {q: "¿Con qué frecuencia contestamos el correo?",
                         as: ["Cada semana.",
                              "Cada dos semanas."]}],

最后,我希望短语在“s:”部分中按下划线分组,用“mi”替换“mi”,得到“mi\u cuarto”,同样地用“los”“el”。。。还有很多例子中没有的。你知道吗

到目前为止我只有:

s = open("stimuli.txt").read()

word = [' mi ','los ']
phrase = [' mi_',' los_']

for i in range(len(word)):
    if BETWEEN "{s:" and "},":
        s = s.replace(word[i],phrase[i])

f = open("stimuli_phrases.txt", 'w')
f.write(file)

当然,这不是真的,这就是我要找的。我可能没有用正确的方法解决问题,所以我也愿意接受任何其他的想法!谢谢你的帮助,谢谢!你知道吗

编辑:在{s:}部分中,所需的输出组包括名词短语和介词短语,如下所示:

["c", "DashedSentence", {s: "Yo limpio mi_cuarto todos_los_sábados."},
      "Question",       {q: "¿Cuándo limpio mi cuarto?",
                         as: ["Todos los sábados.",
                              "Todos los domingos."]}],

["c", "DashedSentence", {s: "Nosotros contestamos el_correo cada_semana."},
      "Question",       {q: "¿Con qué frecuencia contestamos el correo?",
                         as: ["Cada semana.",
                              "Cada dos semanas."]}],

Tags: aseltodoswordquestionmiloscorreo
1条回答
网友
1楼 · 发布于 2024-10-04 07:29:51

您提供的文件是JSON formatted,这意味着它可以很容易地用内置的python json library进行解析:

import json

with open("/path/to/your/file", "r") as f:
    data = json.load(f)

for item in data:
    try:
        s = item['s']
    except (TypeError, KeyError):
        pass

当然,如果您不希望或可以将此文件解析为json,可以使用re library

import re
to_process = re.findall("{s:\"(.+)}\"", yourtext)

To learn or practice with regex, look at there: https://regexr.com/

相关问题 更多 >