0

この質問の言い方がよくわからないので、特に理解していない場合は、もう一度やり直してください。

example.txtというファイルがあり、これをPythonプログラムにインポートしたいと思います。ここでは、そこに含まれているものと無関係な他のものを使用していくつかの計算を行います。

このファイルをインポートする代わりに、行ごとに調べて、必要な情報を抽出します。Pythonで代わりに実行できますか?のように、 .txtを正しく構造化した場合(各行で等号で区切られたキーと値のペアであるかどうかに関係なく)、すべてを処理できる現在のPythonの「方法」はありますか?

4

3 に答える 3

4
with open("example.txt") as f:
    for line in f:
        key, value = line.strip().split("=")
        do_something(key,value)

私があなたを正しく理解していれば、出発点のように見えます。これには Python 2.6 または 3.x が必要です。

もう 1 つの見るべき場所は、csvコンマ区切り値ファイルを解析できるモジュールです=。代わりにセパレータとして使用するように指示できます。これにより、前の例の「手作業」の一部が抽象化されますが、この例ではそのような抽象化は特に必要ないようです。

別のアイデア:

with open("example.txt") as f:
    d = dict([line.strip().split("=") for line in f])

これで簡潔で Pythonic です :)

于 2009-11-04T13:32:11.783 に答える
0
for line in open("file")
    key, value = line.strip().split("=")
    key=key.strip() 
    value=value.strip() 
    do_something(key,value)
于 2009-11-04T13:59:38.490 に答える
0

別の方法もあります-有効なpythonファイルを作成し(リスト、dict定義などにします)、次を使用してそのコンテンツを読み取ることができます

f = open('file.txt', r)
content = f.read() #assuming file isn't too long

そして、それを解析するだけです:

parsedContent = eval(content)

任意の環境を eval に渡すことができるため ( docsを参照)、グローバルおよびローカルにアクセスできない場合があります。これはで間違っていますが、配布されず、ネットワークやいわゆる悪意のあるユーザーから「file.txt」を取得しない小さなプログラムでは、使用できます。

于 2009-11-04T16:32:15.570 に答える