我正在尝试编写一个循环来编写一个文本文件,其值仅由空格分隔。由于某种原因,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()
非常感谢您的帮助!!
答案 0 :(得分:0)
A
是一系列数字列表,因此item
是一个数字列表:
for item in A:
outFile.write('%s ' %item)
要从可迭代的字符串创建字符串,您可以使用str.join
。但是,您有一个数字列表,因此您需要将每个数字转换为str()
的字符串:
for item in A:
outFile.write(' '.join(str(x) for x in item))
如果outFile.write('\n')
确实没有缩进,并且您希望所有内容都在一行上,那么最好将数字列表列表展平为一个可迭代的字符串:
with open('fparameters.txt', 'a') as f:
print(' '.join(str(x) for item in A for x in item), file=f)