gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:19 25 4
gpt4 key购买 nike

我基本上是在尝试使用 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_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)

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

编辑:所需的输出在 {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."]}],

最佳答案

你给的文件是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/

关于python - 如果在文本文件中的两个不同字符之间,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com