打开多个CSV文件并将其整形为列

问题描述

我有多个CSV文件,并希望将其重塑为列并将每个文件再次保存为CSV。 我写了这段代码,但是一次不能导入多个CSV。

首先,我像这样打开文件

@H_404_4@import csv import numpy as np results = [] with open("ESACCI-SEALEVEL-L4-MSLA-MERGED-19930115000000-fv02.csv") as csvfile: reader = csv.reader(csvfile,quoting=csv.QUOTE_NONNUMERIC) for row in reader: # each row is a list results.append(row)

然后重塑形状并另存为csv

@H_404_4@data1 = np.reshape(results,(-1,1)) np.savetxt('data1.csv',data1,delimiter=",")

请帮助我

解决方法

您可以使用简单的for循环来实现这一目标

import csv
import numpy as np

input_file_list = ['file1.csv','file2.csv','file3.cvs']

for file_name in input_file_list:
    results = []
    with open(file_name) as csvfile:
        reader = csv.reader(csvfile,quoting=csv.QUOTE_NONNUMERIC) 
    for row in reader: # each row is a list
        results.append(row)
    data1 = np.reshape(results,(-1,1))
    np.savetxt(output_name[:-4] + 'processed.csv',data1,delimiter=",")
,

据我了解,您想对多个csv文件执行相同的操作。可以使用如下所示的循环来完成此操作,您可以在其中提及csv文件的目录和文件名模式-

import csv
import numpy as np
import glob,os

os.chdir("C:\\your_dir\\")
results = []
for counter,file in enumerate(glob.glob("*.csv")):
    with open(file) as csvfile:
        reader = csv.reader(csvfile,quoting=csv.QUOTE_NONNUMERIC) 
        for row in reader: # each row is a list
            results.append(row)