私は私の会社のためにWeb上に展開したいpythonスクリプトの作成を終えたばかりですが、残念なことにその方法を知りません。誰かが私を助けることができたら、それは大いに感謝されるでしょう。私はDjangoとFlaskを見てきましたが、十分に理解できないようです。Web上で動作するPythonスクリプトを追加しますか?
私のスクリプトは何:
- は、テキストファイルからアドレスを読み込み、ジオコードが
- 戻り値は、アドレスアドレス+
- きれいに
保ちながら、私は、ウェブ上でこれを取得したいと思いますそれは非常に簡単です。私が必要とするのは、ユーザーがテキストファイルを選択できるボタン、またはユーザーが自分のアドレスに貼り付けることができるテキストボックスがあることだけです。それ以外は何もありません。その後、スクリプトは、それが何らかの形で出力洗浄アドレスを(直接、ページ上または多分ファイルとして?)
マイコード意志アドレスの処理を完了したとき:あなたが必要なもの
from geopy.geocoders import Bing
from geopy.exc import GeocoderTimedOut
import re
geolocator = Bing('API KEY')
failCount = 0
successCount = 0
def cleanAddress(address):
global failCount
global successCount
patterns = [" st", "street", "ave", "avenue", "plz", "ctr", "park", "pl", " plaza ", "way", "grn", "sq", "ln","dr", "ct", "oval", "vlg", "blvd", "boulevard", " ter", "pkwy", "rd", "row", "hwy", "americas", "broadway"]
address = address.lower().split('\n')[0]
address = re.sub('[^A-Za-z0-9]+', ' ', address).lstrip()
address = re.sub(re.compile(r'^[^0-9]*'), '', address).lstrip()
if 'plz' in address:
address = address.replace('plz', 'plaza ', 1)
if 'hstreet' in address:
address = address.replace('hstreet', 'h street')
if 'dstreet' in address:
address = address.replace('dstreet', 'd street')
if 'hst' in address:
address = address.replace('hst', 'h st')
if 'dst' in address:
address = address.replace('dst', 'd st')
if 'have' in address:
address = address.replace('have', 'h ave')
if 'dave' in address:
address = address.replace('dave', 'd ave')
if 'havenue' in address:
address = address.replace('havenue', 'h avenue')
if 'davenue' in address:
address = address.replace('davenue', 'd avenue')
regex = r'(.*)(' + '|'.join(patterns) + r')(.*)'
#print(re.sub(regex, r'\1\2', address).lstrip())
address = re.sub(regex, r'\1\2', address).lstrip() + " nyc"
try:
clean = geolocator.geocode(address)
x = clean.address
address, city, zipcode, country = x.split(",")
address = address.lower()
if 'first' in address:
address = address.replace('first', '1st')
elif 'second' in address:
address = address.replace('second', '2nd')
elif 'third' in address:
address = address.replace('third', '3rd')
elif 'fourth' in address:
address = address.replace('fourth', '4th')
elif 'fifth' in address:
address = address.replace('fifth', '5th')
elif ' sixth a' in address:
address = address.replace('ave', '')
address = address.replace('avenue', '')
address = address.replace(' sixth', ' avenue of the americas')
elif ' 6th a' in address:
address = address.replace('ave', '')
address = address.replace('avenue', '')
address = address.replace(' 6th', ' avenue of the americas')
elif 'seventh' in address:
address = address.replace('seventh', '7th')
elif 'fashion' in address:
address = address.replace('fashion', '7th')
elif 'eighth' in address:
address = address.replace('eighth', '8th')
elif 'ninth' in address:
address = address.replace('ninth', '9th')
elif 'tenth' in address:
address = address.replace('tenth', '10th')
elif 'eleventh' in address:
address = address.replace('eleventh', '11th')
zipcode = zipcode[3:]
print(str(address) + ", "+ str(zipcode.lstrip()) + ", " + str(clean.latitude) + ", " + str(clean.longitude))
successCount += 1
#print(str(address))
except AttributeError:
print('Can not be cleaned')
failCount += 1
except ValueError:
print('Can not be cleaned')
failCount += 1
except GeocoderTimedOut as e:
print('Can not be cleaned')
failCount += 1
def main():
f = open('address.txt')
for line in f:
address = line
cleanAddress(address)
f.close()
global failCount
global successCount
total = float(failCount + successCount)
successRate = float(successCount/total) * 100
print("Success rate: " + str(successRate) + "%")
if __name__ == '__main__':
main()
FlaskまたはDjangoを試してください。基礎を学ぶ。それから、あなたのコードを小さな断片で追加します。あなたが求めているのは不明確で広すぎる –
あなたが必要とするのは、これを行うために誰かに支払うことです。 – Jeff
申し訳ありませんが、私は明確ではない。私はあなたが正しいクリケットだと思う。私はFlaskかDjangoのいずれかを学ぶ時間を過ごすつもりです。他のものより「容易」か、それとも好みになるのでしょうか? – Harrison