有没有一种方法可以从python中的文本文件中提取多个数据片段,并将其保存为新的.csv文件中的一行?我需要对多个输入文件执行此操作,并将所有输入文件的输出保存为单个.csv文件。你知道吗
我以前从来没有用过Python,所以我很笨。我以前用过matlab,我知道如果是数字我会怎么用matlab(但不幸的是它是文本,这就是为什么我要尝试python)。所以为了清楚起见,我需要在.csv输出文件中为输入文件中的每个“ID”添加一行新行。 数据示例如下(2个单独的文件)
EXAMPLE DATA - FILE 1:
id,ARI201803290
version,2
info,visteam,COL
info,hometeam,ARI
info,site,PHO01
info,date,2018/03/29
id,ARI201803300
data,er,corbp001,2
version,2
info,visteam,COL
info,hometeam,ARI
info,site,PHO01
info,date,2018/03/30
data,er,delaj001,0
EXAMPLE DATA - FILE 2:
id,NYN201803290
version,2
info,visteam,SLN
info,hometeam,NYN
info,site,NYC20
info,usedh,false
info,date,2018/03/29
data,er,famij001,0
id,NYN201803310
version,2
info,visteam,SLN
info,hometeam,NYN
info,site,NYC20
info,date,2018/03/31
data,er,gselr001,0
我希望得到一个.csv格式的数据与所有的细节,从一个“id”在一行。每个文本文件有多个“id”,并且有多个文件。我想对多个文本文件重复此过程,以便输出在同一个.csv输出文件中。我希望输出在.csv文件中如下所示,每一条信息都作为一个新单元格:
ARI201803290 COL ARI PHO01 2018/03/29 2
ARI201803300 COL ARI PHO01 2018/03/30 0
NYN201803290 SLN NYN NYC20 2018/03/29 0
NYN201803310 SLN NYN NYC20 2018/03/31 0
如果我在matlab中做的话,我会使用for循环和If语句
j=1
k=1
for i=1:size(myMatrix, 1)
if file1(i;1)==id
output(k,1)=(i;2)
k=k+1
else if
file1(i;1)==info && file1(i;1)==info
output(j,2)=(i;3)
j=j+1
等等。。。。。你知道吗
然而,我显然不能在matlab中这样做,因为我有逗号分隔的文本文件,而不是矩阵。有人对如何将我的想法转化为python代码有什么建议吗?或任何其他建议。我对python非常陌生,所以愿意尝试任何可能有用的东西。你知道吗
事先非常感谢!你知道吗
python非常灵活,可以很容易地完成这些工作
python中有很多csv工具/模块可以处理几乎所有类型的csv和excel文件,但是我更喜欢将csv处理为与文本文件相同的文件,因为csv只是一个带有逗号分隔文本的文本文件,所以简单比复杂好
下面的代码用注释解释了其中的大部分内容,您可以调整它以完全符合您的需要
输出:
相关问题 更多 >
编程相关推荐