1

感谢你目前的帮助!我在代码中达到了这一点。

import glob
import csv
import sys
import array

x=1
signs=array.array('i',(0,)*31) 
files = glob.glob('./*.csv')
file = open("all.csv", 'w') 

for row in files: 
    if x<30: 
        signs[x]= x 
        x=x+1 

print (signs[x])
file.close()

我在打印整个数组时遇到问题。正如我所说,模型中有 29 个文件,每个文件有 30 个值:
1,2
2,9
3,20
4,6
5,2
没有特定的顺序或任何东西,数字会重复。我需要打印出数字以及其中有多少实际上重复了自己。我似乎创建了 all.csv 文件,但它似乎是空的。我对python真的很陌生,请不要生我的气。我现在搜索了大约 8 个小时(包括我删除的以前的代码块),但我似乎被卡住了。

4

1 回答 1

1

一种选择:遍历每个文件中的每个数字并增加一个存储在字典中的计数器。打印出按字典键排序的结果(即 csv 文件中遇到的数字)。

import csv, glob, sys

from collections import defaultdict

files = [open(f) for f in glob.glob('user./[1-29].csv')]
#files = [open('input1','r')]
counts = defaultdict(int)

for f in files:
    r = csv.reader(f)
    for line in r:
        for num in line:
            counts[int(num)] += 1

for key,val in sorted(counts.items()):
    print key, val
于 2012-10-17T11:49:25.760 回答