首页 > 解决方案 > Pandas 将文件行读取为一列

问题描述

我有一个文本文件语料库(多个 txt 文件),每个文件的结构如下:

TITLE: some title
URL: some url
META: some meta
DATE: some date
AUTHOR(S): author
TEXT: some text

如何读取文件,以便我有一个包含列(标题、url、...、文本)的数据框?谢谢!

标签: pythonpandasdataframe

解决方案


您可以使用re库来解析文本,例如(regex101):

import re
import pandas as pd

df = pd.DataFrame(
    [
        dict(
            re.findall(
                r"^([A-Z][^:]+):\s*(.*?)\s*?(?=^[A-Z][^:]+:|\Z)",
                open("your_file.txt", "r").read(),
                flags=re.S | re.M,
            )
        )
    ]
)
print(df)

印刷:

        TITLE       URL       META       DATE AUTHOR(S)       TEXT
0  some title  some url  some meta  some date    author  some text

推荐阅读