我是一个完全的初学者,并尝试创建文件erg.csv文件有两列(yPlus和uPlus的值):
yPlus uPlus
separated by a \t.
result:
0 " new line
"
0 " new line
"
2 . 4 6 0 7 3 "
"
2 . 4 6 0 7 3 "
"
4 . 9 2 1 4 6 "
"
4 . 9 2 1 4 6 "
"
...
而不是:
0 \t 0
2.46073 \t 2.4607
4.92146 \t 4.92146
...
def create_file():
f_in = open("folder/experiment.xy","r")
f_out = open("erg.csv","w",encoding="utf8")
writer = csv.writer(f_out,delimiter=" ")
while 1:
zeile = f_in.readline()
if len(zeile) == 0:break
expr = r"\s(?P<yPlus>[0-9.]*\n)"
erg = re.search(expr,zeile)
yPlus = erg.group('yPlus')
yPlus = str(yPlus)
if type(erg.group('yPlus')) == str:
if float(yPlus) <= 12:
writer.writerows([yPlus] + [yPlus])
#rowstr = "{0:s}\t{1:s}".format(yPlus,yPlus)
#writer.writerows([yPlus,yPlus])
else:
uPlus = calc_uPlus(float(yPlus))
#uPlus = str(uPlus)
rowstr = "{0:s}\t{1:6.2f}".format(yPlus,uPlus)
writer.writerows(rowstr)
else:
print("Stop! type(erg.group('yPlus') no string.")
f_in.close()
f_out.close()
def calc_uPlus(yP):
uP = ( 2.439 * math.log(yP) + 5.2 )
return(uP)
我尝试了两个版本来获得所需的结果,但都没有成功:
writer.writerows([yPlus] + [yPlus])
以及
rowstr = "{0:s}\t{1:6.2f}".format(yPlus,uPlus)
writer.writerows(rowstr)
有人能帮忙吗? 谢谢,太多了!你知道吗
如果
yplus
和uplus
分别是左列和右列,则需要预先组合它们以使用writerows
:或者,如果您更愿意使用
writerow
而不是writerows
:以上两个都将输出:
相关问题 更多 >
编程相关推荐