私は数日間この問題に苦労していましたが、私がやろうとしていることに実際に関連する答えは見つけられません。見つける。スクリプト1の変数をスクリプト2からのユーザ入力で上書きする
私は自分の財政(すなわち、現金、銀行のものなど)を追跡するための基本的なシステムを作成しようとしています。私は2つのスクリプト:display.pyとedit.pyを持っています。 考えてみると、私はdisplay.pyを簡単に引っ張って、どれだけ持っているのか、どこにあるのかを確認し、edit.pyを使ってViを開いたり、毎回数値を入力しなくても、私はdisplay.pyを実行します。
理論的には、edit.pyは、ユーザー入力を取るだろうし、その表示は編集の独立しており、保存して、その後、その新しい入力と表示の値を上書きし、それらの値
display.py:
cash1 = "5.14"
bank1 = "none"
print "you have", cash1, "in your pocket"
print ""
print ""you have", bank1, "in the bank"
とedit.pyでこれを使用して
f = open("display.py", "r")
contents = f.readlines()
f.close()
cashinput1 = "cash1"
cashinput2 = raw_input("enter the new coin amount: ")
cashtransfer = ("=".join((cashinput1,cashinput2,)))
contents.insert(5, cashtransfer)
f = open("display.py", "w")
contents = "".join(contents)
f.write(contents)
f.close()
私はedit.pyは非常にきれいではないですけど、問題は、それはそれを押して、行の最後に入力を追加することだということです次の。目標は別のものを追加するのではなく、cash1を上書きすることです。私は単純にインポートしようとしましたが、変更が保存されないので機能しません。
tl; dr他のスクリプトからのユーザー入力で1つのスクリプトの変数を上書きするにはどうすればよいですか? 私はPython 2.7.12を使用しています
ありがとうございます。
編集:Sqlite3はこのタイプのもののために設計されているようですので、この質問に答えます。しかし、どのように答えをせずにこれを閉じるにはわからない。
これを達成するためにソースファイルを変更するのではなく、スクリプトに直接情報を保存することは、一般的には悪い考えです。たぶんあなたがしようとしていることを教えてもらえればわかりやすいアプローチをお勧めします。私は単純なデータベースか、あなたのデータを含むcsvファイル(.pyファイルではない)を作るべきだと思っています。 – Suever
データをテキストファイルに保存し、必要に応じて変更することができます。 'edit'はこのファイルを修正し、' display'はそれを表示します –
データベースシステム関数を再実装しようとしません。たとえあなたが毎日の使用でロック問題に遭遇しないと思っても。ここから読んでください:https://docs.python.org/2/library/sqlite3.html – anx