使用字典阅读器后加入两个 csv 文件



我是Python的新手,我试图采用大约30个csv文件,所有文件都具有相同的头,但每个文件中的数据不同,并合并为一个。现在我假装我只有两个文件要接收,一个是关于ID号1,2,3的信息,另一个是关于ID号4,5和6的信息到目前为止,我已经设法采用文件并使用dictreader创建了一堆字典,具有相同的键,但我不知道如何采取对应于每个键的值,并将它们与所有数据一起连接到一个大文件中。

这是我到目前为止的进度:)

for filename in os.listdir(os.getcwd()):
  root, ext = os.path.splitext(filename)
  if root.startswith('file1') and ext == '.csv':
      upload1 = filename
  if root.startswith('file2') and ext == '.csv':
      upload2 = filename
file_upload1 = open(upload1, 'rU')
data_upload1 = csv.DictReader(file_upload1)
for row in data_upload1:
  print row

upload2也是如此。然后我得到这样的输出;

{'ID': '1', 'name': 'bert', 'age': '30'}
{'ID': '2', 'name': 'ernie', 'age': '40'}
{'ID': '3', 'name': 'pinky', 'age': '50'}
{'ID': '4', 'name': 'perky', 'age': '60'}
etc

我想做的是一个csv文件,其中一列是id 1 2 3 4 5 6然后一列是对应的名字和年龄等等

谁能建议我怎么才能做到这一点?不好意思,我是新手。

调用csv.DictReader()时将得到一个字典生成器。假设我们有两个文件:"f1.csv"one_answers"f2.csv",每个文件都包含多条记录。


    import csv
    fp1, fp2 = open("f1.csv"), open("f2.csv")
    ld1, ld2 = csv.DictReader(fp1), csv.DictReader(fp2) #ld1 and ld2 are *generators*
    res = []  #our result will be stored here(LIST of dicts)
    ds = [ld1, ld2]    #list of generators

然后,遍历ds,同时将每个字典中的每个k-v对添加到res字典中,如下所示:

for d in ds: #each d is a generator
    for e in d: #each e is a dict
        res.append(e)

现在是一个包含两个源字典的列表。只需遍历它并写下它们。

请注意,您可以使代码更健壮/高效,但首先要理解方法:)

问候,

Yati Sagade

相关内容

  • 没有找到相关文章

最新更新