1

Pythonの場合:ループがあり、その各サイクル中に次の形式のリストを作成するとします。['n1'、'n2'、'n3']各サイクルの後に、作成されたエントリを追加するために書き込みます。ファイル(前のサイクルからのすべての出力を含む)に。どうやってやるの?

また、このサイクルの出力をエントリとするリストを作成する方法はありますか?つまり、[[]、[]、[]]ここで、各内部[] = ['n1'、'n2'、'n3]など

4

3 に答える 3

4

ファイルへの行として単一のリストを書き込む

確かに、文字列に変換した後、次のようなファイルに書き込むことができます。

with open('some_file.dat', 'w') as f:
    for x in xrange(10):  # assume 10 cycles
        line = []
        # ... (here is your code, appending data to line) ...
        f.write('%r\n' % line)  # here you write representation to separate line

すべての行を一度に書く

あなたの質問の2番目の部分になると:

また、このサイクルの出力をエントリとするリストを作成する方法はありますか?つまり[[],[],[]]、各内部[]=['n1','n2','n3']など

それもかなり基本的です。一度にすべてを保存したい場合は、次のように記述します。

lines = []  # container for a list of lines
for x in xrange(10):  # assume 10 cycles
    line = []
    # ... (here is your code, appending data to line) ...
    lines.append('%r\n' % line)  # here you add line to the list of lines
# here "lines" is your list of cycle results
with open('some_file.dat', 'w') as f:
    f.writelines(lines)

ファイルにリストを書くためのより良い方法

必要なものに応じて、テキストファイルだけでなく、より特殊な形式の1つを使用する必要があります。リスト表現(大丈夫ですが理想的ではありません)を書く代わりに、例えばを使うことができます。csvモジュール(Excelのスプレッドシートに類似):http ://docs.python.org/3.3/library/csv.html

于 2012-11-16T02:19:18.663 に答える
2

f = open(file、'a') 最初のparaはファイルのパス、2番目はパターン、'a'は追加、'w'は書き込み、'r'は読み取りなど、私の意見では、次のことができます。 f.write (list +'\ n')を使用してループ内に行を書き込みます。それ以外の場合は、f.writelines(list)を使用できます。これも機能します。

于 2012-11-16T02:20:21.000 に答える
0

これがお役に立てば幸いです。

lVals = []
with open(filename, 'a') as f:
    for x,y,z in zip(range(10), range(5, 15), range(10, 20)):
        lVals.append([x,y,z])
        f.write(str(lVals[-1]))
于 2012-11-16T02:28:46.780 に答える