python - 在 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,每个文本文件中的单元格都填满了账单。
解决方案
作为一般建议: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 读取转置的文本文件。
推荐阅读
- java - 有没有办法可以在 Java 中打印两个纪元之间的所有日子?
- javascript - Angular Material mat-card 宽度作为内部文本宽度
- html - 从 ngx-editor 禁用特定项目
- python - 在 Python 代码中使用 MongoDB 服务器函数作为 ID
- haskell - TeletypeIO 的 StateMonad 实例
- java - java类实例如何添加字符串?
- google-cloud-platform - 如何在 x 分钟后运行一次 Airflow DAG?
- node.js - Angular Build - Uncaught TypeError:无法读取未定义的属性“id”
- ruby - OpenSSL::SSL::SSLContext::方法
- android - 带有 Firestore 实现的单元测试功能