6

私はあなたがあなたの本のどのページにいるのかを追跡するのを助ける小さなプログラムを書いています。私はブックマークのファンではないので、「ユーザー入力を受け取り、ユーザーが書いたテキストの番号または文字列(この場合はページ番号)を表示するプログラムを作成できたらどうなるか」と考えました。続けて、必要なときにいつでも変更できるようにしますか?」数行のコードしか必要ありませんが、問題は、次にプログラムを開いたときに同じ番号を表示するにはどうすればよいかということです。変数はリセットされますね。この方法で変数を永続的に変更する方法はありますか?

4

3 に答える 3

5

値をファイルに保存し、起動時にロードすることができます。

コードは次のようになります

variable1 = "fi" #start the variable, they can come from the main program instead
variable2 = 2

datatowrite = str(variable1) + "\n" + str(variable2) #converts all the variables to string and packs them together broken apart by a new line

f = file("/file.txt",'w')
f.write(datatowrite) #Writes the packed variable to the file
f.close() #Closes the file !IMPORTANT TO DO!

データを読み取るためのコードは次のようになります。

import string

f = file("/file.txt",'r') #Opens the file
data = f.read() #reads the file into data
if not len(data) > 4: #Checks if anything is in the file, if not creates the variables (doesn't have to be four)

    variable1 = "fi"
    variable2 = 2
else:
    data = string.split(data,"\n") #Splits up the data in the file with the new line and removes the new line
    variable1 = data[0] #the first part of the split
    variable2 = int(data[1]) #Converts second part of strip to the type needed

この方法では、変数ファイルがアプリケーションとともにプレーンテキストで保存されることに注意してください。すべてのユーザーが変数を編集し、プログラムの動作を変更できます

于 2012-12-12T00:00:12.983 に答える
1

ディスクに保存する必要があります。本当に凝ったものになりたくない場合は、CSV、JSON、YAMLなどを使用して構造化データを簡単に作成できます。

pythonpickleモジュールもチェックしてください。

于 2012-12-11T23:55:17.160 に答える
1

変数にはいくつかの有効期間があります。

  • それらがコードのブロック内にある場合、それらの値はそのコードのブロックに対してのみ存在します。これには、関数、ループ、および条件が含まれます。
  • それらがオブジェクトの内部にある場合、それらの値はそのオブジェクトの存続期間中のみ存在します。
  • オブジェクトが逆参照された場合、またはブロックのコードを早期に残した場合、変数の値は失われます。

特に何かの価値を維持したいのなら、それを持続させなければなりません。 永続性を使用すると、変数をディスクに書き出すことができ(もちろん、データベースは技術的にはディスクにありません)、変数の有効期限が切れた後、またはプログラムが再起動されたときに、後でそれを取得できます。

ページの場所をどのように保持するかについては、いくつかのオプションがあります。手間のかかるアプローチは、SQLiteを使用することです。少し手間のかからないアプローチは、オブジェクトの選択を解除するか、単にテキストファイルに書き込むことです。

于 2012-12-12T00:08:53.823 に答える