2014-02-07 60 views
0

我想讀取文件並提取記錄並在類中打印該文件。我得到的錯誤是該對象沒有函數追加?我已經將它聲明爲一個數組,但似乎沒有認出它。任何提示這個問題是關於什麼?這是解決問題的有效方法嗎?將元素附加到數組實例變量並打印出來 - Python

import os 

class URL(): 
    Test=[] 
    def read(self,file): 
     for l in open(file): 
      fields=l.split(',') 
      company=fields[1].replace(" ",'+') 
      adress="+".join((str(fields[5]),str(fields[11]))) 
      self.Test.append("".join(("http://www.someurl/market-search?q=",company))) 
    def Print(self): 
     for i in Test: 
      return i 

ROOT = os.getcwd() 
START_URL=URL() 
START_URL.read(ROOT+'\Company_Lists\Test_of_company.csv') 

print START_URL.Print 
+2

您能給確切的錯誤你得到什麼? –

+2

self.Test!=測試。你沒有定義self.Test – M4rtini

+0

self.Test.append(「」.join((「http://www.someurl/marker-search?= company)))AttributeError'function'object has no attribute'append' –

回答

1

我想改寫這個:

import os 
import os.path 


class URL(object): 
    Test = [] 
    def read(self, filename): 
     with open(filename) as f: 
      for line in f: 
       fields = line.split(',') 
       company = fields[1].replace(" ", '+') 
       self.Test.append("http://www.someurl/market-search?q={0}".format(company)) 

    def print(self): 
     for i in self.Test: 
      print i 


def main(): 
    root = os.getcwd() 
    start_url = URL() 
    p = os.path.join(root, 'Company_Lists', 'Test_of_company.csv') 
    start_url.read(p) 
    start_url.print() 


if __name__ == '__main__': 
    main() 
+0

這個腳本有兩個小小的改變,打印需要打印,否則它會嘗試調用打印功能。我需要從os.join.path中刪除[],因爲open()不能將列表作爲參數。我一直越來越驚訝的stackoverflow社區!萬分感謝。你的字符串操作比我的好多了:)。 –

+0

哇,不能用'print'作爲方法的名字嗎?奇怪。 – hughdbrown

+0

謝謝你的建設性評論,你是最好的hughdbrown。 –