【发布时间】:2020-11-02 08:39:15
【问题描述】:
我在一个文件夹中有许多 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
【问题讨论】:
-
文件中的文本有
,(逗号)。另存为 CSV 取决于它作为分隔符。所以无论哪里有逗号,你都会休息一下。试试 TSV(制表符分隔值)df.to_csv('K:\\out.tsv', sep='\t')。 -
感谢@Vishnudev。问题是我丢失了文本标识符,因为我想手动编辑它以创建一个列来识别文本。那么有什么方法可以将 tsv 文件转换为 csv 吗?或者,是否可以通过文本文件的名称在
dataframe中创建一个列,即text1text2text3等。对不起,如果它晦涩难懂,我很乐意解释更多。 -
你需要在你的问题@crackers 中用一个例子来详细说明。
-
我试过这个:
quoting=csv.QUOTE_ALL。似乎没有工作。我已经对我之前解释的内容做了进一步的解释。谢谢
标签: python python-3.x pandas text export-to-csv