gpt4 book ai didi

python - 从 csv 中提取奇怪排列的数据并使用 python 转换为另一个 csv 文件

转载 作者:行者123 更新时间:2023-11-28 19:22:46 25 4
gpt4 key购买 nike

我有一个奇怪的 csv 文件,它包含带有 header 值的数据及其对应的数据,方式如下:

,,,Completed Milling Job,,,,,, # row 1

,,,,Extended Report,,,,,

,,Job Spec numerical control,,,,,,,

Job Number,3456,,,,,, Operator Id,clipper,

Coder Machine Name,Caterpillar,,,,,,Job Start time,3/12/2013 6:22,

Machine type,Stepper motor,,,,,,Job end time,3/12/2013 9:16,

我需要从此结构中提取数据,并根据以下结构创建另一个 csv 文件:

Status,Job Number,Coder Machine Name,Machine type, Operator Id,Job Start time,Job end time,,, # header
Completed Milling Job,3456,Caterpillar,Stepper motor,clipper,3/12/2013 6:22,3/12/2013 9:16,,, # data row

如果您注意到,添加了一个名为“状态”的新标题列,但该值位于 csv 文件的第一行。输出文件中的其余列名是从原始文件中提取的。

任何想法将不胜感激 - 谢谢

最佳答案

假设文件都完全一样(至少在上限方面)这应该有效,但我只能根据您提供的确切数据保证:

#!/usr/bin/python
import glob
from sys import argv

g=open(argv[2],'w')
g.write("Status,Job Number,Coder Machine Name,Machine type, Operator Id,Job Start time,Job end time\n")
for fname in glob.glob(argv[1]):
with open(fname) as f:
status=f.readline().strip().strip(',')
f.readline()#extended report not needed
f.readline()#job spec numerical control not needed
s=f.readline()
job_no=s.split('Job Number,')[1].split(',')[0]
op_id=s.split('Operator Id,')[1].strip().strip(',')
s=f.readline()
machine_name=s.split('Coder Machine Name,')[1].split(',')[0]
start_t=s.split('Job Start time,')[1].strip().strip(',')
s=f.readline()
machine_type=s.split('Machine type,')[1].split(',')[0]
end_t=s.split('Job end time,')[1].strip().strip(',')
g.write(",".join([status,job_no,machine_name,machine_type,op_id,start_t,end_t])+"\n")
g.close()

它需要一个 glob 参数(如 Job*.data )和一个输出文件名,并且应该构建您需要的内容。只需将其保存为“so.py”或其他名称并以 python so.py <data_files_wildcarded> output.csv 运行即可。

关于python - 从 csv 中提取奇怪排列的数据并使用 python 转换为另一个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com