我在一个文件夹中有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文件包含多个段落。有什么建议吗?
答案 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',' ')
以使用空格替换所有新行字符。
显然,请根据您的操作系统调整换行符。