如何设置split()起始和结束定界符?

时间:2019-05-02 05:50:20

标签: python-3.x

hackney: 1.15.1
httpoison: 1.5.0
phoenix: 1.4.3

Text_file: topics.txt如何为图像中显示的文本文件设置分隔符?我希望将其拆分为四个单独的文本文件。如代码中所示,我应该怎样以及如何在 if()中给出开始和结束定界符?文本文件具有四个单独的部分0、1、2、3。我正在尝试将所有部分写入单独的文本文件。

[(0,
  '0.011*"people" + 0.009*"christian" + 0.008*"god" + 0.008*"law" + '
  '0.006*"believe" + 0.005*"question" + 0.005*"man" + 0.005*"life" + '
  '0.005*"time" + 0.005*"write"'),
 (1,
  '0.014*"organization" + 0.013*"group" + 0.012*"image" + 0.010*"university" + '
  '0.009*"program" + 0.008*"newsletter" + 0.007*"graphic" + '
  '0.007*"information" + 0.007*"file" + 0.006*"box"'),
 (2,
  '0.015*"write" + 0.015*"organization" + 0.014*"article" + 0.012*"year" + '
  '0.008*"university" + 0.007*"team" + 0.007*"time" + 0.006*"game" + '
  '0.006*"give" + 0.006*"kid"'),
 (3,
  '0.049*"space" + 0.009*"year" + 0.008*"publish" + 0.006*"aerospace" + '
  '0.006*"news" + 0.006*"technical" + 0.005*"satellite" + 0.005*"activity" + '
  '0.005*"membership" + 0.005*"system"')]

1 个答案:

答案 0 :(得分:1)

如果您在上面发布的内容实际上是您的文本文件,那么这应该分别给您每个元组。

我只是在使用正则表达式库。模式就是寻找左括号(并运行不是右括号的任何东西,然后是右括号。超级简单。

import re
foo = """[(0,\n blahblahblah), (1,\n asdfasdf), (2,\n ghhgghiegiegieh)]"""

pat = r'\([^\)]+\)'
matches = re.findall(pat, foo)

['(0,\n blahblahblah)', '(1,\n asdfasdf)', '(2,\n ghhgghiegiegieh)']

如果您想将数字分开,则可以通过拆分和剥离多余的内容来轻松实现:

[i[1:-1].split(',\n')[1].strip() for i in matches]
#['blahblahblah', 'asdfasdf', 'ghhgghiegiegieh']

然后,您可以将它们写入所需的任何文件中。