8

リストがありpListます。.txtリストの各要素がファイルの新しい行に保存されるように、テキスト ( ) ファイルに保存したいと考えています。これどうやってするの?

これは私が持っているものです:

def save():
    import pickle
    pList = pickle.load(open('primes.pkl', 'rb'))
    with open('primes.txt', 'wt') as output:
      output.write(str(pList))
    print "File saved."

ただし、リストはファイルに 1 行だけ保存されます。すべての数値(整数のみを含む)が新しい行に保存されるようにしたい。

例:

pList=[5, 9, 2, -1, 0]
#Code to save it to file, each object on a new line

望ましい出力:

5
9
2
-1
0

どうすればこれを行うことができますか?

4

3 に答える 3

11

ファイルを開き、目的の区切り文字でリストを結合して、印刷するだけです。

outfile = open("file_path", "w")
print >> outfile, "\n".join(str(i) for i in your_list)
outfile.close()

リストには整数が含まれているため、変換が必要です。(通知ありがとう、Ashwini Chaudhary)。

ジェネレーターは join メソッドによって繰り返されるため、一時的なリストを作成する必要はありません (ありがとう、Ashwini Chaudhary)。

于 2012-11-17T19:39:22.320 に答える
11

mapここで使用できますstr

pList = [5, 9, 2, -1, 0]
with open("data.txt", 'w') as f:
    f.write("\n".join(map(str, pList)))
于 2012-11-17T19:46:59.573 に答える
0

指定されたファイルの新しい行に項目を追加する関数を取得するには、この回答を参照してください

https://stackoverflow.com/a/13203890/325499

def addToFile(file, what):
    f = open(file, 'a').write(what+"\n") 

したがって、あなたの質問では、リストをファイルに渡すだけでなく、リストを反復処理する必要があります。

for item in pList:
    addToFile(item)
于 2012-11-17T19:45:40.313 に答える