【问题标题】:Slice within a slice of long string from open file function在打开文件函数的长字符串切片中切片
【发布时间】:2021-02-13 11:30:41
【问题描述】:

大家好,我是 StackOverflow 的新手,

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

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

我得到的是每个列名的整数值的字符长度,以最终创建一个数据框。这就是我要剖析的内容。

一行总共有 73 个字符。从这一行开始,20 个字符是调整后的收盘价,然后接下来的 17 个字符是股票高价等等。我试图得到这 20 个字符的片段,然后是 20 个字符之后的 17 个字符,然后以此类推。

我觉得第一步是把文件转换成我通过'.readlines'完成的列表(仍然不确定这是否是正确的方法)然后遍历列表切片中的每个元素。

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

'00041.1501808166503954.22999954223633053.61999893188476600000072014-08-14 \ n', '0040.92996978759765654.590000152587890054.3400001525878900000102014-08-15 \ n', '0041.24130249023437554.520000457763670054.3899993896484400000072014-08-18 \ N', P>

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

列表 = [00041.15018081665039, 0040.929969787597656, 0041.241302490234375 .....]

这也不是复杂的代码,但任何建议都非常感谢!

非常感谢

【问题讨论】:

    标签: python string dataframe slice


    【解决方案1】:

    基本的列表理解应该可以解决问题:

    试试这个代码:

    lines = ['00041.1501808166503954.22999954223633053.61999893188476600000072014-08-14\n', 
             '0040.92996978759765654.590000152587890054.3400001525878900000102014-08-15\n', 
             '0041.24130249023437554.520000457763670054.3899993896484400000072014-08-18\n']
             
    blocks = [ln[:20] for ln in lines]
    
    print(blocks)
    

    输出

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

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2016-01-06
      • 2015-05-21
      • 2018-09-15
      相关资源
      最近更新 更多