簡體   English   中英

Python中使用savetxt單行寫入數據

[英]Writing data on a single line using savetxt in Python

我想要做的,基本上是將此 Fortran 代碼轉換為 Python:

open (1,file='file',form='formatted')       
write (1,*) na,nb
write (1,*) (a(i),i=1,na) 
write (1,*) (b(j),j=1,nb)
do i=1,na
   write (1,*) (f1(i,j),j=1,nb)
   write (1,*) (f2(i,j),j=1,nb)
enddo

於是想到了用savetxt。 我發現的第一個困難是第一行,其中 na 和 nb 應該保存在文件中的同一行。 我發現您可以通過以下方式實現這一目標:

np.savetxt("file.txt",(na,nb),fmt='%s',newline=" ")

問題是,每當我想將第二行寫為:

f=open("file.txt",'f')
np.savetxt(f,a,fmt='%s',newline=" ")

數組 a 被添加到與 na 和 nb 相同的行中,而我希望它在新的行中也是如此。 我不知道該怎么做。 我認為使用 newline=" ",我只需要將 " " 添加到 na,nb,但它不起作用。 或者,編寫 Fortran 代碼的最簡潔方法是什么?

假設你在每一行上一行一行

1.23 1.23 1.23 1.23
2.34 2.34 2.34 2.34

那么這樣的事情應該有效:

f = open('file.txt','w')
print(na, nb, file=f)
np.savetxt(f, a.reshape(1,na), fmt='%s', delimiter=' ')
np.savetxt(f, b.reshape(1,nb), fmt='%s', delimiter=' ')
for row in range(f1.shape[0]):
  np.savetxt(f, f1[row], fmt='%s', delimiter=' ')
  np.savetxt(f, f2[row], fmt='%s', delimiter=' ')

savetxt每行一行,但對於一維數組,每個元素都被視為一行。 因此,我將它重塑為 2-D( reshape幾乎不需要任何費用;它只是改變了解釋)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM