我有一个文本文档,我想在特定关键字后复制一行中的所有内容。我该怎么做?

I have a text document, and I want to copy everything in a line after a specific keyword. How would I do this?

更具体地说,我通过 Google Takeout 通过 google 视频群聊下载了我所有的消息,但其中很多是对我无用的数据。我唯一关心的是实际消息,甚至不是时间戳。 .json 文件中的每条消息都有单独的一行,看起来像

"text" : "[actual message in here, including the brackets]"

那么我如何提取所有消息,并最好将它们按时间顺序放在不同的行中? (它们都已经按顺序排列,.json 文件的顶部是最新的消息,底部是最旧的​​)也许有人可以下载他们自己的 Google 视频群聊外卖文件来尝试执行此操作。任何帮助,将不胜感激。 Python 可能最适合这项任务,但任何能够完成这项工作的编程语言都足够了。

您可以使用 python 完成此操作的一种方法是将 json 文件加载到字典数据结构,然后打印回您想要的值。

您没有指定 json 的确切结构,因此如果 json 是一个由包含 'text' 键的对象组成的数组,那么这将完成工作(根据 json 结构更改此设置):

import json

hangout_data = open('hangout_data') #Load the json file into a variable as text.
hangout_dict = json.loads(hangout_data) #Convert the json text to a dictionary.

for key, value in hangout_dict.iteritems(): #Go over the dictionary
    print(value['text'][1:-1]) #print the text property of each object in the array. [1:-1] strips the brackets.

希望这对您有所帮助。非常欢迎您 post 确切的结构,我将提供更具体的答案。

如果您只想将内容视为纯文本:

file = open('filepath', 'r')
for line in file:
    strippedline=line.lstrip().rstrip() #lstrip removes leading white space, rstrip removes trailing '\n' (and other white space)
    if strippedline.startswith('"text" :'):
        message = ':'.join(strippedline.split(':')[1:])
        print message

可能最好只通过本机 json 关键字命令。

这是一个输入文件:

"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including : the brackets and some ':' ]"
"texat" : "[This isn't a legal message]"
   "text" : "[actual message in here, including the brackets.  Note leading white space ]"

和输出:

"[actual message in here, including the brackets]"
"[actual message in here, including the brackets]"
"[actual message in here, including : the brackets and some ':' ]"
"[actual message in here, including the brackets.  Note leading white space ]"