CSV文件和Python

加布里埃尔·布图鲁(Gabriel Butoeru)

我正在研究一个Python脚本,该脚本应该合并一些CSV文件的某些列(很多情况下,大约200个文件)。所有文件如下所示:

Timestamp; ...; ...; ...; Value; ...
date1;...;...;...; FirstValue;...
date2;...;...;...; SecondValue;...

等等。

我要从第一个文件中提取时间戳和“值”列。在其他文件中,我仅需要“值”列。

我现在的脚本是:

#!/usr/bin/python
import csv
import os, sys

# Open a file
path = "Z:/myfolder"
dirs = os.listdir( path )
#Conto il numero di file nella cartella
print len(dirs)
#Assegno il nome del primo file
file = dirs[0]

#Apro il primo file per la lettura di timestamp e primo valore (Value)
primofile = csv.reader(open(file, 'rb'), delimiter=";", quotechar='|')
timestamp, firstValue = [], []
#Per ogni riga del primofile
for row in primofile:
    #Copio timestamp
    timestamp.append(row[2])
    #e Value
    firstValue.append(row[15])

with open("provacript.csv", 'wb') as f:
    writer = csv.writer(f, delimiter=';')
    i = 0
    while i < len(timestamp):
        writer.writerow([timestamp[i]] + [firstValue[i]])
        i = i+1

因此,在“ provascript.csv”中,我具有时间戳和第一列以及来自第一个文件的值。下一步是一个一个地打开列表“ dirs”中的文件,读取“ Values”列(第15列),将该列保存在数组中并将其写入“ provascript.csv”中。

我的代码是:

for file in dirs:
data = csv.reader(open(file, 'rb'), delimiter=";", quotechar='|')
column = []
for row in data:
    column.append(row[15])

在数组“ column”中,我应该有值。我必须将此值添加到“ provascript.csv”的新列中,并继续对所有文件执行相同的操作。我怎样才能做到这一点?

我想要一些类似的东西

TimestampFromFirstFile;ValueFromFirstFile;ValueFromSecondFile;ValueFromThirdFile;...
date1;value;value,value;...
date2;value;value;value;...
date3;value;value;value;...

到目前为止,一切都很好。我修复了它(谢谢),但是与其在第一行中读取和写入Value,不如说我写了一部分名称。我不希望使用Timestamp; Value; Value; Value,而是使用Timestamp; Temperature1; Temperature2; Presence1; Presence2。

我该怎么做?

xecgr

我应该创建完整的结构,最后将其保存在输出文件中(假设文件在它们之间是有序的)

#create the full structure:  output_rows
primofile = csv.reader(open(file, 'rb'), delimiter=";", quotechar='|')
output_rows = []
for row in primofile:
    output_rows.append([row[2], row[15]])

获得列表的有序列表后,请与其他文件一起完成它们

for file in dirs:
    data = csv.reader(open(file, 'rb'), delimiter=";", quotechar='|')
    column = []
    for idx,row in enumerate(data):
        output_rows[idx].append(row[15])

最后将其保存到文件

with open("output.csv", 'wb') as f:
    writer = csv.writer(f, delimiter=';')
    for row in output_rows:
        writer.writerow(row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python 和 CSV 文件

来自分类Dev

控制CSV文件和python中的字符

来自分类Dev

Python:不含熊猫的CSV文件和字典

来自分类Dev

使用Python解析和重组CSV文件

来自分类Dev

带有CSV文件的Python``和''迭代

来自分类Dev

python .xml 和 .csv 文件操作

来自分类Dev

在python和csv模块中解析csv文件

来自分类Dev

Weka和CSV文件

来自分类Dev

CSV文件和Java

来自分类Dev

在CSV文件中排列字典中的键和值-Python

来自分类Dev

python CSV和JSON文件的编码/解码故障排除

来自分类Dev

使用python和pandas合并csv文件(重叠行)

来自分类Dev

使用CSV文件和python的多个图像下载器

来自分类Dev

Python中的.JSON文件转换和CSV操作问题

来自分类Dev

python CSV和JSON文件的编码/解码故障排除

来自分类Dev

如何在 Python 中读取和写入 CSV 文件

来自分类Dev

如何打开和遍历 CSV 文件列表 - Python

来自分类Dev

使用 Python 在 .CSV 文件中搜索和替换多个名称

来自分类Dev

只读csv文件python

来自分类Dev

CSV文件解析(python)

来自分类Dev

python写入csv文件

来自分类Dev

Python排序CSV文件

来自分类Dev

Python分析csv文件

来自分类Dev

Python 转 csv 文件

来自分类Dev

从cpp,python和csv文件制作可执行文件?

来自分类Dev

从python中的模板文件和csv数据生成输出文件

来自分类Dev

如何使用python和os合并特定文件夹中的所有csv文件

来自分类Dev

从python中的模板文件和csv数据生成输出文件

来自分类Dev

使用 Python 3 在 CSV 文件中的子文件夹/TXT 中查找和替换