gpt4 book ai didi

python - CSV 文件和 Python

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:16 24 4
gpt4 key购买 nike

我正在编写一个 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])

在数组“列”中我应该有值。我必须将这些值添加到“provascript.csv”的新列中,然后继续对所有文件执行相同的操作。我该怎么做?

我想要一个类似的东西

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

到目前为止一切顺利。我修复了它(谢谢),但我不想在第一行读取和写入值,而是想写名称的一部分。与其使用 Timestamp;Value;Value;Value,我更喜欢 Timestamp;Temperature1;Temperature2;Presence1;Presence2。

我该怎么做?

最佳答案

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

#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)

关于python - CSV 文件和 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158981/

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