在打开文件函数的长字符串切片内进行切片



大家好,我是StackOverflow,的新手

我正在尝试对.dat文件中的每一行进行切片。

其目的是进行事件研究,我应该打开文件,然后在使用".readlines"打开文件时操作数据,这是一个带有数字的巨大字符串。打印时有常用的"\n"来表示新行。

我得到的是每个列名的整数值的字符长度,最终创建一个数据帧。这正是我想要划掉的部分。

一行总共有73个字符。从这一行开始,20个字符是调整后的收盘价,然后接下来的17个字符是股价等

我觉得第一步是将文件转换为列表,这是我通过".readlines"完成的(仍然不确定这是否是正确的方法(,然后迭代列表切片中的每个元素。

通过".readlines"的文件如下所示:

'00041.1501808166503954.229999542236333053.61999893188476600000072014-08-14\n','0040.9299697875976654.590052587890054.340000152588900000102014-08-15\n','0041.24130249023437554.52000045776370054389993896484400000072014-08-18\n',

我想得到的是一个单独的列表,每个新行的前20个字符。因此,对于上面的内容,它将是这样的:

list=[000411501808166503910040.92996978759766560041.241302490234375…..]

它也不意味着复杂的代码,但任何建议都非常感谢!

非常感谢

基本的列表理解应该做到这一点:

试试这个代码:

lines = ['00041.1501808166503954.22999954223633053.61999893188476600000072014-08-14n', 
'0040.92996978759765654.590000152587890054.3400001525878900000102014-08-15n', 
'0041.24130249023437554.520000457763670054.3899993896484400000072014-08-18n']

blocks = [ln[:20] for ln in lines]
print(blocks)

输出

['00041.15018081665039', '0040.929969787597656', '0041.241302490234375']

最新更新