2016-12-12 5 views
0

値をスペースで区切ってテキストファイルに書き込むループを作成しようとしています。何らかの理由で、Pythonは冒頭と末尾に角カッコを入れ、各値の間にカンマを挿入しています。私は参加しようとしましたが、いくつかの方法がありましたが、成功しませんでした。カンマなしの値の追加

Here is my code: 
import os 
import numpy 

os.chdir('/Users/DevEnv/Case_1') 


try: 
    os.remove('fparameters.txt') 
except OSError: 
    pass 

n=50 
N=50 

tlength=1501 #set number of generations 



for x in range(0,n): 
    A=[] 
    for i in range(0,tlength): 
     Aj=[] 
     for v in range(0,N): 
      mu_f, sigma_f = 1.5, 0.5 
      Aj.append(60+ numpy.random.lognormal(mu_f, sigma_f, size=None))  

     A.append(Aj) 

    outFile = open('fparameters.txt','a') 
    for item in A: 
     outFile.write('%s ' %item) 
    outFile.write('\n') 
    outFile.close() 

お手数をおかけしますようお願い申し上げます。

for item in A: 
    outFile.write('%s ' %item) 

文字列の反復可能オブジェクトから文字列を作成するには、str.joinを使用することができます。

+0

実際のスクリプトを正しく反映するようにコードを書式設定してください。ブロックが他の方法でネストされているかどうかはわかりません。 – Ryan

答えて

0

Aのでitemがここ数のリストである、数字のリストのリストです。あなたはstr()で文字列にそれぞれ1を変換する必要がありますので、あなたは、しかし、数のリストを持っている:

for item in A: 
    outFile.write(' '.join(str(x) for x in item)) 

outFile.write('\n')が実際にインデントされていない、あなたが1行上のすべてのものをしたい場合、それは可能性があります数字のリストを文字列の1つの繰り返し可能文字列にまとめることがベストです。

with open('fparameters.txt', 'a') as f: 
    print(' '.join(str(x) for item in A for x in item), file=f) 
+0

優秀、ありがとう! – user7269405

関連する問題