2016-04-04 8 views
0

私はPythonには新しく、一般的にはコーディングに比較的新しいので、リストを追加できるかどうかを確認するためのテストビットを書こうとしていましたが、その.pyが読み込まれたときに変更が保存されます。変更が永続的になるようにリストを追加するには?

これはリストで可能なのかどうかわかりませんが、それ以上の量の仕事はありませんが、私の試みでは私をそこに連れて来ることはできません。

現時点で私が持っているテストコードは次のとおりです。

lDUn = [] 
lDPw = [] 

def enterUn(): 
    usrName = input(str("Enter your desired username:\n")) 
    if usrName in lDUn: 
     print ("Username is already in use, please try again") 
     enterUn() 
    else: 
     print ("Username created!") 
     lDUn.append(usrName) 

enterUn() 

def enterPw(): 
    pW1 = input(str("Enter your desired password:\n")) 
    pW2 = input(str("please re-enter your password:\n")) 
    if pW1 == pW2: 
     print ("Password created!") 
     lDPw.append(pW1)  
    else: 
     print ("Passwords do not match, please try again") 
     enterPw() 

enterPw() 

lDUnlDPwを含めるためにチェックされている場合、彼らは何の問題も登録していないが、プログラムを閉じて再オープンされたときに、後に、彼らはなくなっている、後に。 私は 'pW'と 'usrName'の入力を.txtに書き込もうとしましたが、後で特定の文字列の.txtsを検索することに失敗しました。 (しかしそれは別の質問のためです)それ以外の私はPythonに関する私の現在の知識にどうしたらいいのか分かりません。

+0

Pythonの変数(すべてではないにしろほとんどの言語)はvolatileです。テキストファイルや適切なデータベースなど、どこかに値を格納し、永続化したい場合は必要に応じて再ロードする必要があります。 – Selcuk

+0

@Selcukスピーディーな応答に感謝します。必要な文字列のために.txtを検索するプログラムを取得し直さなければならないようです。私はここでそれをやる方法はたくさんあると思っていますが、まだそれらのうちのどれかを働かせることはできません。 –

+0

@Selcuk MUMPSは優れた配列を持っています。 –

答えて

0

変数の値(この場合はリストの内容)は、であり、プログラムを再起動すると自動的に保存されます。プログラムが終了する前に値をファイルに保存するコードを書く必要があります。プログラムを再起動したときにファイルから値を読み取るコードもあります。

リストをファイルに入れることができるバイトに変換する方法はあなた次第です。一般的な方法の1つは、リストから文字列を1行に1つずつファイルに書き込んだり、再度読み込んだりすることです。これはmethods of file objectsを使用して行うことができます。

もう1つの方法は、pickle moduleです。これはPythonオブジェクトを与えるだけで、あなたのバイトへの変換を処理するので、少しの労力を節約するかもしれませんが、結果ファイルを表示して編集することはできません。 (まあ、することができますが、それはバイナリファイルなので、それはちんぷんかんぷんのようになります)

+0

応答をありがとう、私は 'pickle'モジュールを試してみる、それはdefinitley便利に見えるcPickleをチェックします。私は 'f.read()'を使ってみましたが、インクルードをチェックしようとしたときにメソッドが間違っていると思います。私はその両方で遊んで、うまくいけば、彼らをすぐに適切に把握することができます。 –

+0

あなたの答えをもう一度おねがいします。私は「読み取り」の使い方を振り返り、それが機能するように管理しましたが、状況によってはもっと便利なように見えるので、pickleも試してみます。 –

0

ここにあなたが何をすべきか、基本的です:

  1. あなたはそれらのリストを格納するファイルまたはファイルを設定します。
  2. コードの始めに、ファイルからリストにデータを読み込みます。
  3. リストの1つを変更するたびに、関連するファイルも変更されます(最も基本的な実装は、ファイルを再作成することです)。
  4. 他の場合は、メモリ内のデータを操作します。

これは、小さなファイルと小さな「トラフィック」を処理する限り正常に動作します。それらのいずれかが増加した場合、深刻な成果や一貫性の問題が発生します。これらの問題を適切に解決するには、sqlite(別のサーバーを必要としない)から始まる適切なデータベースを使用する必要があります。

関連する問題