2017-01-25 120 views
1

我想從以下URL中要導入的文件中的數據讀取數據:來自互聯網文件

"http://chart.finance.yahoo.com/table.csv?s=XLB&a=0&b=24&c=2016&d=0&e=24&f=2017&g=v&ignore=.csv" 

它由每行兩個數據4個數據行。

我已經嘗試了許多事情,比如:

data = requests.get('http://chart.finance.yahoo.com/table.csv?s=XLB&a=0&b=24&c=2016&d=0&e=24&f=2017&g=v&ignore=.csv') 
for line in data: 
    print line 
    f = open(name_of_file, 'a') 
    for i in range(len(data)-1,0,-1):    
     data_to_write = (""+ convert_date(data[0]) + ',' 
          + data[1] + ',' 
          + '\n') 
     f.write(data_to_write) 
    f.close() 

但我總接收答案,如類型響應的

對象沒有LEN()

或類似回答。實際上,我總是在瀏覽器(Mac上的Safari)中打開一個文件,但不能讀取文件的內容? 有人能指出我在正確的方向嗎?

+0

謝謝麥克@mike。您的解決方案完美運作解決了。 – Studix

+0

非常有幫助。順便說一句,你可以[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)一個答案,如果它解決了你的問題。 –

+0

@mike接受。我學到了另一件事! – Studix

回答

0

這將數據寫入文件:

import requests 

name_of_file = 'yahoo.txt' 

data = requests.get('http://chart.finance.yahoo.com/table.csv?s=XLB&a=0&b=24&c=2016&d=0&e=24&f=2017&g=v&ignore=.csv') 
with open(name_of_file, 'a') as fobj: 
    fobj.write(data.text) 

文件內容:

Date,Dividends 
2016-12-16,0.334000 
2016-09-16,0.242000 
2016-06-17,0.235000 
2016-03-18,0.157000