【问题标题】:Merging multiple txt files into csv with python使用python将多个txt文件合并到csv中
【发布时间】:2020-06-02 14:37:28
【问题描述】:

*对 Python 非常陌生 我需要将单个目录中的大量 txt 文件合并到一个 csv 文件中。文件中的文本需要转换成单独的行和列(每个文件五列,N 行)。 我使用了this question的代码:

import os
import csv

dirpath = 'path_of_directory'
output = 'output_file.csv'
with open(output, 'w') as outfile:
    csvout = csv.writer(outfile)
    csvout.writerow(['FileName', 'Content'])

    files = os.listdir(dirpath)

    for filename in files:
        with open(dirpath + '/' + filename) as afile:
            csvout.writerow([filename, afile.read()])
            afile.close()

    outfile.close()

它适用于我,但它会将文件中的所有内容放入一个表格单元格中。我阅读了很多问答,无法弄清楚如何修改代码以将内容分成不同的列和行。

【问题讨论】:

  • 您能否更新问题以包含来自文本文件的一些示例输入和预期输出?
  • 为什么你认为所有的内容都在一个表格单元格中?你能用过Excel吗?你知道 Excel 知道它对 CSV 文件的处理很差,它没有在同一个系统上编写自己吗?编辑为文本时生成的 csv 文件包含什么内容,您希望它包含什么内容?
  • 输入文件的格式是什么?输出文件中所需的输出是什么? csv.reader() 可能会有所帮助。仅供参考,.writerow([filename,afile.read()]) 您已经明确表示将文件名放在第一列,将整个文件内容放在第二列。
  • 原始文件具有 .tsv 扩展名。不幸的是,我无法在此处放置文件或生成的 .csv 中的示例。当我在 Excel 中打开它时,它说包含所有文件内容的单元格是合并单元格,我无法拆分它。当我在记事本++中打开它时,它都是分开的,但出于工作原因,它也需要在 Excel 中分开

标签: python python-3.x csv export-to-csv


【解决方案1】:

你必须阅读所有行的循环中的五个单词。接下来,沿着文件名写下五个单词,如下所示。希望有帮助。我为这个概念添加了伪代码。希望有帮助!!!

files = os.listdir(dirpath)

for filename in files:
    with open(dirpath + '/' + filename) as afile:
        #for line in afile.read()
        #     words_in_a_line = split_line_to_get_words(line) 
        #     csvout.writerow([filename, words_in_a_file])

        csvout.writerow([filename, afile.read()]) # delete this line
        afile.close()

outfile.close()

这里的函数 split_line_to_get_words 将返回该行中五个单词的列表。如果根据空格或逗号分隔行,则使用它们从一行中获取五个单词。

【讨论】:

  • 对不起,我不太明白你说的 split_line_to_get_words() 是什么意思
  • 通过 split_line_to_get_words(),我的意思是用空格或逗号分隔一行中的单词,因为它们在您的数据中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
  • 2019-05-07
  • 1970-01-01
  • 2018-06-11
相关资源
最近更新 更多