python - Numpy savetxt - 带有格式的制表符分隔文本
问题描述
我想格式化制表符分隔的文本,以便可以轻松地将其导入 Excel。我看到的其他帖子似乎没有解决这个特定问题。文档建议我应该使用 option delimiter = '\t'
。这似乎适用于没有格式或重复的单一格式,但当每列都有单独的格式时,它没有效果。我错过了什么?我通过\t
输入格式字符串找到了解决方案,但根据文档,这应该不是必需的。为什么该功能不像描述的那样工作?
这是一些示例代码:
fn = open('b.dat','w')
fmt0 = '%5.2f'
fmt1 = '%5.1f'*2 + '%6.3f'*2
fmt2 = '%5.1f\t'*2 + '%6.3f\t' + '%6.3f'
b = np.arange(12).reshape(3,4)/3
print('savetxt b simple fmt0, tab delimiter',file=fn)
np.savetxt(fn,b,delimiter='\t',fmt=fmt0)
print('savetxt b fmt1, tab delimiter has no effect ',file=fn)
np.savetxt(fn,b,delimiter='\t',fmt=fmt1)
print('savetxt b fmt2 contains tabs + delimiter',file=fn)
np.savetxt(fn,b,delimiter='\t',fmt=fmt2)
print('savetxt b fmt2 contains tabs, no delimiter',file=fn)
np.savetxt(fn,b,fmt=fmt2)
fn.close()
我不知道如何在此处显示选项卡,但此代码的输出如下。fmt1 的输出没有制表符 - 分隔符选项无效。
savetxt b simple fmt0, tab delimiter
0.00 0.33 0.67 1.00
1.33 1.67 2.00 2.33
2.67 3.00 3.33 3.67
savetxt b fmt1, tab delimiter has no effect
0.0 0.3 0.667 1.000
1.3 1.7 2.000 2.333
2.7 3.0 3.333 3.667
savetxt b fmt2 contains tabs + delimiter
0.0 0.3 0.667 1.000
1.3 1.7 2.000 2.333
2.7 3.0 3.333 3.667
savetxt b fmt2 contains tabs, no delimiter
0.0 0.3 0.667 1.000
1.3 1.7 2.000 2.333
2.7 3.0 3.333 3.667
解决方案
推荐阅读
- arrays - 在 Swift 中创建数组
- reactjs - 使用 React 从 Firebase 加载数据
- android - 微调器模式下的Android DatePicker不显示日期
- android - 我可以在不同的时间段内滑动 android viewpager 吗?
- mysql - 使用 SQL 查询移动特定的用户列表
- hibernate - 使用错误数量或类型的参数调用函数 RTRIM/LTRIM
- mysql - mysql查询周期数据到每个月
- lua - 计算相对于lua中对象的位置和旋转的世界坐标
- javascript - 使用 javascript 隐藏和取消隐藏 div 元素
- cs-cart - cscart - 在类别和产品详细信息页面上显示产品时间戳