def prodInfo():
from collections import Counter
prodHolder = {}
tempdict = {}
try:
os.chdir(copyProd)
for root, dirs, files in os.walk('.'):
for data in files:
fullpath = os.path.join(root, data)
with open(fullpath, 'rt') as fp:
for info in fp:
info = info.strip()
if info.startswith('prodType'):
info0 = info.split('=')[1]
info0 = info0.replace(';','')
info0 = info0.replace('"','')
if info.startswith('acq'):
info1 = info.split('=')[1]
info1 = info1.replace(';','')
info1 = info1.replace('"','')
if info.startswith('ID_num'):
info2 = info.split('=')[1]
info2 = info2.replace(';','')
info2 = info2.replace('"','')
print info0 + info1 + info2
产生以下结果:
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
SD Acq645467 356788
Image Acq645467 356788
Image Acq645467 356788
Image Acq645467 356788
Image Acq645467 356788
SD Acq644869 356849
SD Acq644869 356849
Image Acq644869 356849
SD Acq644247 356851
SD Acq644247 356851
Image Acq644247 356851
我想存储的结果,并有能力计算的次数'SD'发生的每一个特定的身份证号码(356788/356849/356851)和多少'图像'为每个身份证号码。你知道吗
结果如下:
9-SD/4-356788的图像
2-SD/1-356849的图像
2-SD/1-356851图像
我想最好是把这些条目存储在字典里,但不能成功地计算出它们的值。这是我用来在字典中存储信息的代码。你知道吗
prodHolder[info2] = {'SD/Image': info0, 'Acq' : info1}
total_Acq = prodHolder
print prodHolder
结果如下:
{'356788':{'SD/Image':'SD','Acq':Acq645467'}}。。。你知道吗
每次函数运行时,都会输入一组不同的值,从而产生不同的结果。你知道吗
所以这里有两个问题。你知道吗
1) 如何将结果写入文件:
我会使用csv(逗号分隔值)。Python有一个很好的模块(csv)
您可以修改您的代码,以便在它从文件读取的同时(就像它已经做的那样),将
info0
、info1
和info2
写入.csv
文件:这将创建一个文件
stack59.write.csv
,如下所示:2) 如何计算常见结果:
因此,itertools.groupby可能适合您的需要。您可能还想看看迭代器做什么(请参见this、this和this)
首先,我将数据存储到一个矩阵中:
然后你可以把你的
data_matrix
随意分组。例如:输出:
相关问题 更多 >
编程相关推荐