0

現在、python linecache モジュールを使用して、特定のテキスト ドキュメントから特定の行を取得し、その行を含む新しいファイルを作成しています。たとえば、コードの一部は次のようになります。

cs = linecache.getline('variables.txt', 7)
cs_1 = open("lo_cs", "w")
cs_1.write(str(cs))
cs_1.close()

問題は、variables.txt 内で、7 行目が次のように指定されていることです。

variable7 = 3423

例えば。ただし、新しいファイル lo_cs には、テキスト行全体ではなく、実際の値 '3423' のみを含める必要があります。さらに、「getline」コマンド全体を if ループに挿入して、variable7 を空白のままにすると、別のアクションが実行されるようにしたいと考えています。linecache を使用して 'variable7 = ' に続くスペースをチェックして、そこに何か入力されているかどうかを確認し、その場合はその特定の値または文字列のみを取得する方法はありますか?

bash スクリプトが、特定のファイルを挿入または呼び出すための一種のプレースホルダーとして「$」を使用しているように見えることは知っています (ただし、実際には理解していません)。それに似たものを実装する必要があると思います...

行のセグメントのみを選択することを避けるために、値を下の行に指定する必要があることを示すテキストファイルに指示を入れることを考えましたが、これにより、誤って余分な区切りを入力することができ、すべてが台無しになりますどの行を選択する必要があるかという点で、後続の「getline」コマンド。

正しい方向への助けをいただければ幸いです。

4

1 に答える 1

0

次のメソッドを使用して、必要な機能をラップできます。

def parseline(l):
    sp = l.split('=')
    return sp[0], int(sp[1]) if len(sp) > 1 else None

または、変数名が必要ない場合:

def parseline(l):
    sp = l.split('=')
    return int(sp[1]) if len(sp) > 1 and sp[1].strip() != '' else None

そして、次を使用します。

csval = parseline(linecache.getline('variables.txt', 7))

後で csval に条件を配置して、Noneそれが であるかどうかを確認し、そうである場合は別のアクションを実行できます。

于 2014-06-18T15:13:40.623 に答える