首页 > 解决方案 > 多个 txt 文件作为 csv 文件中的单独行而不分成行(在熊猫数据框中)

问题描述

我在一个文件夹中有许多 txt 文件(已从 pdf 转换)。我想创建一个 csv/excel 数据集,其中每个文本文件都将成为一行。现在我正在打开文件pandas dataframe,然后尝试将其保存到csv文件中。当我打印时dataframe,我得到每个 txt 文件的一行。但是,当保存到csv文件时,文本会被破坏并为每个 txt 文件创建多行/多行,而不仅仅是一行。你知道我该如何解决这个问题吗?任何帮助将不胜感激。谢谢你。

以下是我现在使用的代码。

import glob
import os
import pandas as pd

file_list = glob.glob(os.path.join(os.getcwd(), "K:\\text_all", "*.txt"))

corpus = []

for file_path in file_list:
    with open(file_path, encoding="latin-1") as f_input:
        corpus.append(f_input.read())

df = pd.DataFrame({'col':corpus})
print (df)

df.to_csv('K:\\out.csv')

更新

如果此解决方案不可行,将数据稍微转换为pandas dataframe. 我想创建一个txt文件名称的列,即文件夹中每个txt文件的名称将成为各自文本文件的标识符。然后我会将其保存为tsv格式,这样行就不会因为 , 被分隔comma,正如这里有人建议的那样。

我需要类似以下的东西。

identifier       col
txt1             example text in this file
txt2             second example text in this file
...
txtn             final example text in this file

标签: pythonpython-3.xpandastextexport-to-csv

解决方案


利用

import csv
df.to_csv('K:\\out.csv', quoting=csv.QUOTE_ALL)

推荐阅读