将文件夹中的txt文件转换为csv文件中的行

时间:2016-07-27 23:23:39

标签: python python-2.7

我在一个文件夹中有100个txt文件。我想创建一个csv文件,其中每个文本文件的内容在此csv文件中成为单行(实际上是一行中的单个单元格)。因此,结果将是一个包含100行的csv文件。

我尝试了以下代码:

import glob

read_files = glob.glob('neg/*')

with open("neg.csv", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            for line in infile:
                outfile.write(line)

这创建了一个包含数千行的csv,因为每个txt文件包含多个段落。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

尝试:

import glob
import csv

read_files = glob.glob('neg/*')

with open("neg.csv", "wb") as outfile:
    w=csv.writer(outfile)
    for f in read_files:
        with open(f, "rb") as infile:
            w.writerow([line for line in infile])

这使得每一行都是输出中的一个单元格,每个文件都是一行。

如果您希望每个单元格都是文件的全部内容,请尝试:

import glob
import csv

read_files = glob.glob('neg/*')

with open("neg.csv", "wb") as outfile:
    w=csv.writer(outfile)
    for f in read_files:
        with open(f, "rb") as infile:
            w.writerow(" ".join([line for line in infile]))

答案 1 :(得分:0)

在编写每个line之前,首先执行line.replace('\n',' ')以使用空格替换所有新行字符。

显然,请根据您的操作系统调整换行符。