問題:...它改變一些變量,如URL和文件FILE1.TXT位置
目前還不清楚你想要chk_data
做什麼。 嘗試了您的示例代碼,發現您正在閱讀chk_data
,但之後無所作爲。請編輯您的問題,並使用示例數據對此進行更詳細的解釋。
該實施例可以用不同的url
,file lcation
和filename
使用。
注意:我用module urllib
,而不是os.popen("curl...
。
首個解決方案,從終端窗口傳遞參數:
import urllib.request
import urllib.parse
def check(url, params, filename):
params = urllib.parse.urlencode(params)
url = "{}?{}".format(url, params)
with urllib.request.urlopen(url) as f:
json_response = json.loads(f.read().decode('utf-8'))
with open(filename, 'w') as f_out:
f_out.write(str(json_response))
if __name__ == '__main__':
url = sys.argv[1]
params = {}
for param in sys.argv[2].split(' '):
key, value = param.split('=')
params[key] = value
if url == 'openweathermap.org':
url = 'http://samples.openweathermap.org/data/2.5/weather'
params['appid'] = 'b1b15e88fa797225412429c1c50c122a1'
check(url, params, sys.argv[3])
使用:
:# python openweathermap.org "id=2172797" /home/word/my_file.txt
第二種解決方案,使用test.py
作爲Python module
和import check
。
新Python腳本中的參數。
注意:這需要home.check.test
是在你的PYTHONPATH
!
創建一個新的*.py
文件,摹openweathermap.py
from home.check.test import check
if __name__ == '__main__':
url = 'http://samples.openweathermap.org/data/2.5/weather'
params = {'id':'2172797', 'appid':'b1b15e88fa797225412429c1c50c122a1'}
check(url, params, '/home/word/my_file.txt')
使用:
:# python /home/check/openweathermap.py
測試使用Python 3.4.2
調用'test.py'與參數。例如。 'python test.py。其次將'test.py'作爲'module'和'import'放到更高級別的腳本中。 –
stovfl
謝謝,我需要提供文件名的完整路徑作爲參數嗎? – Rebbeca
一般來說,是取決於你從哪個文件夾調用腳本。您的示例代碼保存到當前文件夾中。 – stovfl