首页 > 解决方案 > 在 python 中将多个特定文本文件转换为 CSV

问题描述

我有许多非常特定格式的文本文件需要读入 csv。我似乎无法弄清楚如何以我想要的 csv 格式获取所有数据。我可以获得工作表的文件名和标题,但工作表中没有任何数据处于活动状态。文本文件如下:

"market":"billing, MI"
"mileStoneUpdates":"N"
"woName":"Dsca_55354_55as0"
"buildStage":"CPD"
"designType":"Core"
"woOverwrite":"Y"

我的代码:

import os
import csv

dirpath = 'C:\Usersnput\\'
output = 'C:\Users\gputew Microsoft Excel Worksheet.csv'
with open(output, 'w') as outfile:
    csvout = csv.writer(outfile)
    csvout.writerow(['market','mileStoneUpdates','woName','buildStage','designType','woOverwrite'])
files = os.listdir(dirpath)

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

outfile.close()

需要有带有标题的电子表格;market、mileStoneUpdates、woName、buildstage、designType、woOverwrite,每个文本文件中的单元格都填满了账单。

标签: python

解决方案


作为一般建议:pandas 库对于这样的事情非常有用。如果我正确理解了您的问题,则基本上应该这样做:

import os
import pandas as pd

dirpath = 'C:\Users\gputman\Desktop\Control_File_Tracker\Input\\'
output = 'C:\Users\gputman\Desktop\Control_File_Tracker\Output\New Microsoft Excel Worksheet.csv'
csvout = pd.DataFrame()

for filename in files:
    data = pd.read_csv(filename, sep=':', index_col=0, header=None).T
        csvout = csvout.append(data)

csvout.to_csv(output)

有关代码的说明,请参阅此问题/答案,该问题/答案说明了如何使用 pandas 读取转置的文本文件。


推荐阅读