2016-12-12 170 views
-1

我正嘗試在沒有GUI的Raspberry-Pi上創建API調用。該URL必須具有用戶特定的憑據,這些憑證不會更改,因此我試圖寫入,然後從文件讀取並插入到URL的正確部分。Python如何從文件中讀取字符串並插入URL

WIP至今代碼:

#!/usr/bin/python 

system_id = raw_input("What is your Enphase System ID: ") 
user_id = raw_input ("What is your Enphase User ID: ") 

f1 = open ("enphase_system_id.txt", 'w+') 
value1 = (system_id) 
s1 = str (value1) 
f1.write(s1) 

f2 = open("enphase_user_id.txt", 'w+') 
value2 = (user_id) 
s2 = str (value2) 
f2.write(s2) 

url = ("https://api.enphaseenergy.com/api/v2/systems/" 
     +f1.read()+ 
     "/summary?key=6ba121cb00bcdafe7035d57fe623cf1c&usf1c&usf1c&user_id=" 
     +f2.read()) 

print url 

f1.close() 
f2.close() 

from urllib2 import urlopen 

inverter = urlopen(url) 

response = inverter.read() 
body = response 

print body 

的問題是URL鏈接起來,而不讀字符串:

https://api.enphaseenergy.com/api/v2/systems//summary?key=6ba121cb00bcdafe7035d57fe623cf1c&usf1c&usf1c&user_id=

今天簡直是在任何語言我第一天編程,你的幫助非常感激。

+0

只是要清楚:你是從控制檯讀取東西。寫他們打開文件,然後試圖從相同的打開的文件中讀出它們? –

+0

是的,我知道raw_input和閱讀表單文件是多餘的,我的目標是弄清楚如果文件已經存在,如何不請求raw_input。 – Scalextrix

回答

0

寫完後你還沒有關閉文件(準確地說,你太晚了)。這是第一件事。接下來,您需要在關閉這些文件後才能打開這些文件以便閱讀它們。此外,你可以簡單地做:的

f1.write(value1) 
f2.write(value2) 

代替

value1 = (system_id) 
s1 = str (value1) 
f1.write(s1) 

value2 = (user_id) 
s2 = str (value2) 
f2.write(s2) 
+0

謝謝,我讀到,因爲ID是數字,我必須在寫入.txt文件之前將它們創建爲字符串。 如何將文件的內容插入到URL中? – Scalextrix

+0

他們被讀作字符串,沒有米他們是數字。 'raw_input'返回字符串。閱讀('f1.read()')你正在做好事。 – Fejs

+0

好吧,謝謝,它不喜歡連接: + f2.read) TypeError:無法連接'str'和'builtin_function_or_method'對象 編輯:對不起,我犯了一個錯字,現在所有的工作,謝謝! – Scalextrix

相關問題