我正在尝试分隔一个没有空格的2D数组。应该有88列和148行。但现在它只有148行。第一行没有任何数字,看起来像这样:
的数据
但有些行的数字是这样的:*************************************************************************************************************************************************308. 308 308 308 308 308 308 308.
我们的目标是每隔7个字符分隔一行,形成88列。对于上面的每一行,前两个断点理想地看起来像这样:
的
当它到达我分享的第二行的数字时,它应该看起来像这样:
'**','308.'
(如果308前面的空格或后面的句点丢失,这并不重要)
到目前为止,我已经尝试了以下方法,文件名为. txt,其中包含2D数组。
import numpy as np
a = input('Enter file name: \n')
a = np.loadtxt(a, dtype = 'i', delimiter = '\t')
b = [a[i:i+3] for i in range(0, len(a), 3)]
字符串
但我得到了以下信息:
ValueError:无法将字符串转换为float:'****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************'
我觉得这可能是一个简单的解决办法,但我一直在旋转我的车轮上。救命啊!
2条答案
按热度按时间mlmc2os51#
我把你的问题读了几遍,我不太清楚你想要什么。你可能需要改写你的问题,并给予更具体和完整的例子。
如果我对您的问题理解正确的话,您希望读入一个文本文件,并将行拆分为7个字符的块(尽管您的示例“308.”不是7个字符长)。Numpy不是解决这个问题的理想包。你可以使用Python原生方法。
字符串
rm5edbpk2#
我会在这里使用正则表达式:
字符串
r'(\*{7}|\d{1,7})'
作为正则表达式。输出量:
型