0
안녕하세요 저는이 프로그램이 하단의 클래스 호출에 입력 된 회랑의 목록 데이터를 인쇄하도록하려고합니다. 그러나 목록의 마지막 행만 인쇄합니다. 이 프로그램은 .csv 파일을 받아서 목록으로 바뀝니다. 어떤 의미로든 매우 숙련 된 파이썬 프로그래머가 아닙니다.프로그램이 목록의 마지막 행을 인쇄합니다
class csv_get(object): # class to being in the .csv file to the program
import os
os.chdir('C:\Users\U2970\Documents\ArcGIS')
gpsTrack = open('roadlog_intersection_export_02_18_2014_2.csv', 'rb')
# Figure out position of lat and long in the header
headerLine = gpsTrack.readline()
valueList = headerLine.split(",")
class data_set(object): # place columns from .csv file into a python dictionary
dict = {'DESC' : csv_get.valueList.index("TDD_DESC"),
'ROUTE_NAME' : csv_get.valueList.index("ROUTE_NAME"),
'CORRIDOR': csv_get.valueList.index("CORRIDOR"),
'ROADBED': csv_get.valueList.index("DC_RBD"),
'BEG_RP': csv_get.valueList.index("BEG_RP"),
'END_RP': csv_get.valueList.index("END_RP"),
'DESIGNATION': csv_get.valueList.index("NRLG_SYS_DESC")}
class columns_set(object): # append the dict into a list
new_list = []
for line in csv_get.gpsTrack.readlines():
segmentedLine = line.split(",")
new_list.append([segmentedLine[data_set.dict['DESC']],\
'{:>7}'.format(segmentedLine[data_set.dict['ROUTE_NAME']]),\
'{:>7}'.format(segmentedLine[data_set.dict['CORRIDOR']]),\
'{:>7}'.format(segmentedLine[data_set.dict['ROADBED']]),\
'{:>7}'.format(segmentedLine[data_set.dict['BEG_RP']]),\
'{:>7}'.format(segmentedLine[data_set.dict['END_RP']]),\
'{:>7}'.format(segmentedLine[data_set.dict['DESIGNATION']])])
class data:
def __init__(self,corridor):
for col in columns_set.new_list: # for each column in the list new_list
self.desc = col[0]
self.route = col[1] # assigns column names to column numbers
self.corridor = col[2]
self.roadbed = col[3]
self.beg_rp = col[4]
self.end_rp = col[5]
self.designation = col[6]
def displayData(self): # print data for corridor number entered
print self.desc,\
self.route,\
self.corridor,\
self.roadbed,\
self.beg_rp,\
self.end_rp,\
self.designation
set1 = data('C000021') # corridor number to be sent into data class
# should print all the corridor data but only prints very last record
set1.displayData()
마이크 Mike에게 감사드립니다. for 루프 데이터 클래스 초기화? –
허. 좋아, 나는 분명히 내가 프로그램에서 더 잘 될 수있는 방법에 대한 제안에 열중하고있다. 나는 그런 식으로 클래스를 사용하여 그들이 보유하고있는 데이터 나 변수에 대해 쉽게 호출 할 수 있습니다. 그러나 그렇습니다 그들은 기능처럼 일하고 있습니다. 나는 스스로 가르쳐 파이썬 그래서 나는 확실히 많은 숙취를 가지고 있습니다. 고마워, 네가 한 말을 들여다 봐라. –
좋아, 그래서 내 문제를 알아 냈어 그리고 기본적으로 기능을하는 클래스를 하나의 클래스 내에서 메서드로 바꿨다. 프로그램이 잘 작동하므로 도움을 주셔서 대단히 감사드립니다. 이제는 더 많은 일을 수행하는 방법을 찾아야합니다. –