0

Python変数の上書きについて少し助けが必要です。これが私が与えることができる最良の例です。誰かが私のプログラムを(.exeまたはで.py)開いて、これが出てきた場合:

var = 5
var = raw_input("Enter the new variable value: ") ##THE PERSON ENTERS 3
var = 3

これで、ユーザーはファイル/プログラムを閉じます。次にそれを開くときに、プログラムにそれを記憶させたいvar = 3ので、で上書きvar = 5var = 3ます。これが可能かどうかはわかりませんが、可能であれば教えていただけますか?

明確にするために:変数が変更された.pyこと.exeを覚えておいて、古い変数を新しい変数で上書きして、次にファイルを開いたときに、変数がすでに変更されていることを確認します。

4

3 に答える 3

4

たとえば、ファイル、データベース、または何らかのサービスを使用して、何らかの方法で値を保存する必要があります。

たとえば、単純なファイルを使用します。

import io,os
try:
    with io.open('~/.jordan_last_value', 'r', encoding='utf-8') as f:
        var = f.read()
except IOError: # Read failed
    var = raw_input('Enter the new variable value')

    # Save value to disk
    with io.open('~/.jordan_last_value', 'w', encoding='utf-8') as f:
       f.write(var)

print ('Current value is ' + var)

ご覧のとおり、これはやや複雑になる可能性があるため、ファイル処理の知識を更新することをお勧めします。また、このサンプルコードは文字列を格納するだけです。

より複雑なオブジェクトを格納できるようにする場合は、最初にそれらをバイト文字列との間で変換する方法が必要になります。そのためのjsonまたはpickleモジュールを見てください。

于 2013-02-12T18:39:59.240 に答える
2

pickleモジュール、json、または何でも使用できます:P

于 2013-02-12T18:37:56.797 に答える
0

pickleモジュールの使用:

import pickle
try: # try to open the file
    with open('jordan_data.pkl', 'r+') as f:
        var = pickle.load(f)
except IOError: # if it doesn't exist, get new input
    var = raw_input("Enter the new variable value: ") # THE PERSON ENTERS 3
    with open('jordan_data.pkl', 'a+') as f: # 'a' will create the file if it doesn't exist
        pickle.dump(var, f) # then, save the file
于 2013-02-12T18:57:45.603 に答える