尝试使用OOP打印导入的列表。没多少运气。 OOP新手

时间:2014-02-24 18:39:43

标签: python oop csv

我不太了解使用OOP。我正在尝试创建一个打印机类,我可以随时调用,但我没有太多运气。较大的程序使用程序编程很容易,但这样会更有效。

class data():
    def __init__(self):
        import os
        import csv
        self.new_list = []
        os.chdir('C:\Users\U2970\Documents\ArcGIS')
        with open('roadlog_intersection_export_02_18_2014_2.csv', 'rb') as f:
            reader = csv.reader(f)
            for row in reader:
                self.new_list.append(row)

    def printer(self):
        print self.new_list

out = data()
out.printer()

1 个答案:

答案 0 :(得分:0)

我很难理解你的问题究竟是什么,但我可以给你一些关于你的代码和oop的反馈。

首先,您通常不希望对对象中的值进行硬编码,因为这样只会对非常有限的应用程序有用。我建议包含一个load()函数加载到一个文件中,然后一个printer()函数,然后打印当前加载的任何函数。

这看起来像这样:

class data(object):

    def __init__(self):
        self.current_list = None

    def load_file(self, filename):
        self.current_list = list(csv.reader(open(filename, 'r')))

    def printer(self):
        print(self.current_list)

您可以像这样使用它:

out = data()
data.load('C:\Users\U2970\Documents\ArcGIS\roadlog_intersection_export_02_18_2014_2.csv')
data.printer()

另请考虑使用qGIS而不是ArcGIS。

如果你想把它作为一个函数来做(没有真正的理由去写这么浅的包装器)你可以这样做:

def print_csv(filename):
    print list(csv.reader(open(filename, 'r')))

print_csv('C:\Users\U2970\Documents\ArcGIS\roadlog_intersection_export_02_18_2014_2.csv')