gpt4 book ai didi

python - 提取开始标记和结束标记之间的所有字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:39 24 4
gpt4 key购买 nike

我从 txt 文件中读取了一行字符串(文件只有这个字符串),格式如下:

[[“抽象”、“常用”、“引用”、“介绍”、“动机”]、[“真实”、“白天”、“夜晚”、“二十”、“血液”、“卡车” , "major", "ship", "plane"], ["weapon", "guns", "nuclear", "revolver"], ["rose", "princess", "flower", "beauty", "向日葵”、“兵”、“虚”、“ Jasmine ”]、[“布”、“衬衫”、“牛仔裤”、“裤”]]

我想检索开始标记= ["和结束标记= "] 之间的所有文本内容

所以我想要的输出应该是(新行分隔):

“摘要”、“常用”、“引用”、“引言”、“动机”

“真实”、“白天”、“夜晚”、“二十”、“血”、“卡车”、“少校”、“船”、“飞机”

“武器”、“枪支”、“核武器”、“左轮手枪”

“玫瑰”、“公主”、“花”、“美女”、“向日葵”、“士兵”、“虚幻”、“ Jasmine ”

“布”、“衬衫”、“牛仔裤”、“裤子”

我写了下面的代码:

def fileRead(fpath):

f = open(fpath, "r")

for s in f:

start = s.find('["')

start += 1 # skip the bracket, move to the next character

end = s.find('"]', start)

print(s[start:end])

return s[start:end]

但它只给我以下输出:

“摘要”、“常用”、“引用”、“引言”、“动机”

请告诉我需要更改哪些内容才能获得所需的输出?

最佳答案

literal_eval 非常适合这个。它基本上需要一个表示为字符串的列表并给出 python 列表

a = """["hello"]"""
b = literal_eval(a)
b[0]
>>> "hello"

对于你的情况:

from ast import literal_eval


def fileRead(fpath):

f = open(fpath, "r")
f_string = f.readlines()
f_list = literal_eval(f_string)
print(f_list)
for item in f_list:
print(" ".join(item)) # joins words with space between them

Here是文档。

关于python - 提取开始标记和结束标记之间的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59280327/

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