Python抱怨说;fmt的%formats数量错误“;或者所有数据都存储在一列中

Python抱怨说;fmt的%formats数量错误“;或者所有数据都存储在一列中,python,Python,我试图从cdf文件中获取数据,并将它们放在一个txt文件中。然而,他们抱怨“fmt的%格式数量错误”,或者所有数据都存储在一列中。我更喜欢在不同的专栏中,但我不知道如何实现它 from scipy.io import netcdf import numpy as np path = "/Desktop/data/maosondewnpnM1.b1.20140901.053000.cdf" a = netcdf.netcdf_file(path, 'r') time = a.variable

我试图从
cdf
文件中获取数据,并将它们放在一个
txt
文件中。然而,他们抱怨“fmt的%格式数量错误”,或者所有数据都存储在一列中。我更喜欢在不同的专栏中,但我不知道如何实现它

from scipy.io import netcdf
import numpy as np

path = "/Desktop/data/maosondewnpnM1.b1.20140901.053000.cdf"

a = netcdf.netcdf_file(path, 'r')

time = a.variables['time'][:]
dp = a.variables['dp'][:]
deg = a.variables['deg'][:]
tdry = a.variables['tdry'][:]
wspd = a.variables['wspd'][:]
pres = a.variables['pres'][:]
rh = a.variables['rh'][:]
u_wind = a.variables['u_wind'][:]
v_wind = a.variables['v_wind'][:]
asc = a.variables['asc'][:]
wstat = a.variables['wstat'][:]
lat = a.variables['lat'][:]
lon = a.variables['lon'][:]
alt = a.variables['alt'][:]
第一次尝试

b = [[time], [dp], [deg], [tdry], [wspd], [pres], [rh], [u_wind], [v_wind],[asc], [wstat], [lat], [lon], [alt]]

File = open("Desktop/file.txt", 'wb')

np.savetxt(File, b, fmt = '%.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f', delimiter = '\n', header = 'time dp deg tdry wspd pres rh u_wind v_wind asc wstat lat lon alt')

File.close()
b = [time, dp, deg, tdry, wspd, pres, rh, u_wind, v_wind, asc, wstat, lat, lon, alt]

np.savetxt(File, b, fmt = '%f', delimiter = '\n', header = 'time dp deg tdry wspd pres rh u_wind v_wind asc wstat lat lon alt')

File.close()
第二次尝试

b = [[time], [dp], [deg], [tdry], [wspd], [pres], [rh], [u_wind], [v_wind],[asc], [wstat], [lat], [lon], [alt]]

File = open("Desktop/file.txt", 'wb')

np.savetxt(File, b, fmt = '%.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f %.5f', delimiter = '\n', header = 'time dp deg tdry wspd pres rh u_wind v_wind asc wstat lat lon alt')

File.close()
b = [time, dp, deg, tdry, wspd, pres, rh, u_wind, v_wind, asc, wstat, lat, lon, alt]

np.savetxt(File, b, fmt = '%f', delimiter = '\n', header = 'time dp deg tdry wspd pres rh u_wind v_wind asc wstat lat lon alt')

File.close()
请尝试以下操作:

b = list(zip(*[xtime, dp, deg, tdry, wspd, pres, rh, u_wind, v_wind, asc, wstat, lat, lon, alt]))
header = 'time,dp,deg,tdry,wspd,pres,rh,u_wind,v_wind,asc,wstat,lat,lon,alt'
np.savetxt("output.txt", b, fmt="%.5f", delimiter=',', header=header, comments='')
这应该将列列表转换为行列表

注意:我建议您重命名
time
变量,以防需要导入Python的时间库。我使用了
xtime

尝试以下方法:

b = list(zip(*[xtime, dp, deg, tdry, wspd, pres, rh, u_wind, v_wind, asc, wstat, lat, lon, alt]))
header = 'time,dp,deg,tdry,wspd,pres,rh,u_wind,v_wind,asc,wstat,lat,lon,alt'
np.savetxt("output.txt", b, fmt="%.5f", delimiter=',', header=header, comments='')
这应该将列列表转换为行列表


注意:我建议您重命名
time
变量,以防需要导入Python的时间库。我使用了
xtime

尝试将
.split()
添加到标题字符串的末尾。尝试将
.split()
添加到标题字符串的末尾。谢谢,但仍然会出现错误:“list”对象没有属性“replace”。我试图将数据“time”、“dp”、“deg”等放在不同的列中,但上面的代码似乎不可能。您能给我看一个
b
的示例吗?我已经更新了脚本。我再次尝试,它说“fmt有错误的形状”,b看起来是这样的:b=[时间,dp,deg,tdry,wspd,pres,rh,u_风,v_风,asc,wstat,lat,lon,alt]我猜是这样的,你能在你的问题中添加一个
b
的样本吗?这是alt的一栏。如果这是你需要的样本5.000000000000000000 E+01 5.940000152587890625e+01 6.930000305175781250e+01 7.89000152587890625E+01 8.98000305175781250E+01 1.0109999984741210938E+02 1.105999984741210938e+02 1.19599841210938E+02 1.2819999482475021.371999969482421875e+02 1.4880000030517578125E+02 1.603000030517578125e+02 1.705000000000E+02 1.803000030517578125e+02 1.90600006035156250E+02 2.00600003105156250E+02 2.103000030517578125e+02 2.213000005175125E+02 2.3069969482475E+02 2.385000000000E+02谢谢,但它仍然给出错误:“list”对象没有属性“replace”。我试图将数据“time”、“dp”、“deg”等放在不同的列中,但上面的代码似乎不可能。您能给我看一个
b
的示例吗?我已经更新了脚本。我再次尝试,它说“fmt有错误的形状”,b看起来是这样的:b=[时间,dp,deg,tdry,wspd,pres,rh,u_风,v_风,asc,wstat,lat,lon,alt]我猜是这样的,你能在你的问题中添加一个
b
的样本吗?这是alt的一栏。如果这是你需要的样本5.000000000000000000 E+01 5.940000152587890625e+01 6.930000305175781250e+01 7.89000152587890625E+01 8.98000305175781250E+01 1.0109999984741210938E+02 1.105999984741210938e+02 1.19599841210938E+02 1.2819999482475021.371999969482421875e+02 1.4880000030517578125E+02 1.603000030517578125e+02 1.705000000000E+02 1.803000030517578125e+02 1.90600006035156250E+02 2.00600003105156250E+02 2.103000030517578125e+02 2.213000005175125E+02 2.3069969482475E+02 2.385000000000E+02