Я написал сценарий для чтения и построения данных на графиках. У меня есть три входных файловpython перестает работать в середине набора данных
wells.csv: список наблюдательных скважин, которые я хочу создать граф
...
well_summary_table. csv: информация, содержащаяся для каждой скважины (например, эталонная высота, глубина до воды)
44445164 +10617451515053691368888Bore_Name Ref_elev
data.csv: содержатся данные наблюдений для каждой скважины (например, рН, Temp)
RowId Bore_Name Глубина рН
Не все скважины в wells.csv есть данные для построения
Мой сценарий, как следовать
well_name_list = []
new_depth_list =[]
pH_list = []
from pylab import *
infile = open("wells.csv",'r')
for line in infile:
line=line.strip('\n')
well=line
if not well in well_name_list:
well_name_list.append(well)
infile.close()
for well in well_name_list:
infile1 = open("well_summary_table.csv",'r')
infile2 = open("data.csv",'r')
for line in infile1:
line = line.rstrip()
if not line.startswith('Bore_Name'):
words = line.split(',')
well_name1 = words[0]
if well_name1 == well:
ref_elev = words[1]
for line in infile2:
if not line.startswith("RowId"):
line = line.strip('\n')
words = line.split(',')
well_name2 = words[1]
if well_name2 == well:
depth = words[2]
new_depth = float(ref_elev) - float(depth)
pH = words[3]
new_depth_list.append(float(new_depth))
pH_list.append(float(pH))
fig.plt.figure(figsize = (2,2.7), facecolor='white')
plt.axis([0,8,0,60])
plt.plot(pH_list, new_depth_list, linestyle='', marker = 'o')
plt.savefig(well+'.png')
new_depth_list = []
pH_list = []
infile1.close()
infile2.close()
Он работает над более чем половиной моего списка, после чего он останавливается, не давая мне никаких ошибок сообщение. Я не знаю, что происходит. Может ли кто-нибудь помочь мне с этой проблемой? Извините, если это очевидный вопрос. Я новичок.
Большое спасибо,
Что вы подразумеваете под "остановками"? Выходит ли программа или только половина сохраненных фигур или что-то еще? Остановляется ли он в одной точке каждый раз? Попробуйте «распечатать» имя скважины, чтобы увидеть, где она остановится, если вы еще не знаете – jozzas
, чтобы закрыть 'infile1' и' infile2' в цикле 'for well ...'. Или еще лучше использовать диспетчер контекста (http://effbot.org/zone/python-with-statement.htm) – tacaswell
Помимо этого, это немного беспорядок анализа данных, который трудно отлаживать без вашего полного набора данных. Если он не слишком большой, я бы предложил разбор ваших файлов один раз и сохранить его в структуре данных в памяти, а затем заговорить об этом. – tacaswell