2

ファイル(テキストファイルまたはyamlファイル)に保存されるいくつかの変数が欲しい

たとえば、これらの変数をファイルに保存している場合

employee = ['Tom', 'Bob','Anny']
salary = 200
managers = ['Saly','Alice']

たとえば、リスト名や変数名をユーザーに入力してもらいたい

ユーザーが従業員を入力し、リスト値に対していくつかの操作を実行して、ユーザーがアクセスすることになっている場合employee[0]employee[1]...など

正しい変数のファイル検索に移動し、ユーザーにその値へのアクセスを許可するPythonスクリプトを作成するにはどうすればよいですか?

ありがとう

4

2 に答える 2

3

@Levonが言ったことのように、それを可能にするいくつかの方法があり、最良のものは問題のコンテキストに依存します。たとえば、

  1. たとえば、ファイル内の区切り文字 "="を使用して、ファイルをフォーマットして自分でファイルを読み取ります。
  2. データベースを使用してデータを保存する
  3. pickleまたはshelveを使用して変数をシリアル化し、後で元に戻します。
  4. 変数をPythonモジュールに入れてインポ​​ートします
于 2012-07-08T11:02:42.263 に答える
0

このアプローチは、ファイルの内容がある程度一貫していると仮定した場合の1つの方法である可能性があります。

更新:以前は提供されていなかったリストを解析するために必要なコードを追加しました。

このコードは、ファイル内のすべてのデータを取得し、それを適切なタイプ(つまり、floatとlists)として変数に割り当てます。リストの解析は特にきれいではありませんが、機能的です。

import re
with open('data.txt') as inf:
    salary = 0
    for line in inf:
        line = line.split('=')
        line[0] = line[0].strip()
        if line[0] == 'employee':
            employee = re.sub(r'[]\[\' ]','', line[1].strip()).split(',')
        elif line[0] == 'salary':
            salary = float(line[1])
        elif line[0] == 'managers':
            managers = re.sub(r'[]\[\' ]','', line[1].strip()).split(',')

print employee
print salary
print managers

収量:

['Tom', 'Bob', 'Anny']
200.0
['Saly', 'Alice']
于 2012-07-08T13:26:39.340 に答える