您提供了2個數據和2倍的值,所以astropy
引用的數據,以便能夠讀取它。
你真的需要astropy
這個嗎?標準Python確實很容易使用str.format
:
t=['SDSS J2000']
data=[10]
with open("data.txt","w") as f:
f.write("{} {} {:f}".format(*(t[0].split()+data)))
如果你真的要實現,使用astropy
您可以使用quotechar
集空間(並使用選項來避免顯示頭):
astropy.io.ascii.write([t,data] ,'data.dat',names=['name','num'],format='no_header',quotechar=' ',formats={'name':'%s','num':'%f'})
這個寫道:
SDSS J2000 10.000000
所以太多的空間,預計當您嘗試扭轉圖書館的胳膊成寫入數據無法讀回可靠
編輯:另一種方式來做到這一點是讓astropy
寫它的報價和事後除去它們,使用io.StringIO
避免寫/讀/寫盤:
import astropy.io.ascii
import io
t=['SDSS J2000']
data=[10]
buf=io.StringIO()
astropy.io.ascii.write([t,data] ,buf,names=['name','num'],format='no_header',formats={'name':'%s','num':'%f'})
with open("data.dat") as f:
f.write(buf.getvalue().replace('"',""))
文件現在包含:
SDSS J2000 10.000000
看起來你需要3列,而不是2.空間作爲分隔符,所以這就是爲什麼包含空格需要引用的字符串。 –
這不是唯一的區別:看起來你想放棄標題以及嗎? –