我正在使用walk
函数 > 搜索 .cnt 文件 > 计算感兴趣的值 > 在饼图中绘制它们的目录行走。但问题是当我的 prog 处理第一个文件夹和绘图时,它运行良好。但之后它读取和绘图的任何文件夹都会重叠。无法理解我的代码中是否存在错误。我用过:
for root,dirs,files in os.walk(path):
aspCount = 0
gluCount = 0
aspCountCol1 = 0
aspCountCol2 = 0
gluCountCol1 = 0
gluCountCol2 = 0
listOfFile = glob.iglob(os.path.join(root,'*.cnt'))
for filename in listOfFile:
inp = open(filename,'r').read().strip().split('\n')
for line in map(str.split,inp):
k = line[-1]
m = line[0]
if k == 'ASP':
aspCountCol1 += 1
elif m == 'ASP':
aspCountCol2 += 1
if k == 'GLU':
gluCountCol1 += 1
elif m == 'GLU'
gluCountCol1 +=1
# here lies the problem for me !!!!
aspCount = aspCountCol1 + aspCountCol1
gluCount = gluCountCol1 + gluCountCol1
#now plotting......
from pylab import *
figure(1, (figsize=(8,8))
labels = 'asp','glu'
fracs = [asp_count,glu_count]
pie(fracs,explode=None,labels=labels,autopct='%1.1f%%',shadow=False)
c = 'fig.png'
savefig(os.path.join(root,c))
现在,问题是:使用此代码,如果我处理具有包含 .cnt 文件的各种子文件夹的目录,则它不会出错。但是第一个文件夹生成的图形很好,但是当 prog 去处理下一个文件夹时,它成功地处理了数据,但是生成的图形与前一个文件夹重叠。
我正在处理的文件是:
LYS ARG
ASP GLU
GLU SAP
JAS ASP
SAK GLU