gpt4 book ai didi

python - 将字符串分成 block ,然后将这些 block 传递给一个新对象。 python 3

转载 作者:行者123 更新时间:2023-12-04 10:46:32 24 4
gpt4 key购买 nike

我正在尝试操作 strings 的列表这样每个字符串都被分解成块,然后这些块被存储在一个新列表中。

例子:

原始字符串列表如下所示

l_1 = ['09:13:34\t135\t94\t77\t2.97\t2.247\\\n', '09:14:34\t135\t94\t77\t3.03\t2.207\\\n', '09:15:34\t130\t94\t79\t2.83\t2.331\\\n', '09:16:34\t132\t95\t80\t2.86\t2.331\\\n

我想要的是剥离 \\\n每个字符串的末尾,然后在 \t 处分隔每个字符串.因此,例如, l_1[0]应该从这里结束
'09:13:34\t135\t94\t77\t2.97\t2.247\\\n'

对此:
l_2 = ['09:13:34', 135, 94, 97, 2.97, 2.247] 

对于上下文,l_1 来自纯文本文件,其中每一行都是对生物特征数据的时间戳观察,每个文本文件都是一个参与者,我需要将所有行组合成 Pandas 数据框中的一行,并且可能需要一次对 100-200 个文本文件执行此操作。显然,我希望能够自动化。

到目前为止我尝试过的是:
import re

with open("data_1.txt") as f:
contents = f.readlines()

i = contents[0]
re.split(r'\t+', i.rstrip('\\\n'))

print(i)

但是,当我运行时 l_1 就变成了
<class 'list'>
[['', '}']]

所以我没有继续将块存储在一个新列表中,然后将该列表作为数据框中的一行。

如果有人能告诉我我做错了什么(以及如何正确做),我将非常感激。

最佳答案

我在下面添加了两个示例。请务必检查一下。我已将它们设置为一次读取 32 个字节。但是您可以增加、减少或发疯并从中获得乐趣。

正常方式:

blocks = []
while True:
block = f.read(32)
if block == '':
break
blocks.append(block)

Pythonic 方式(最高效的方式之一):
blocks = []
for block in iter(partial(f.read,32),''):
blocks.append(block)

祝先生有美好的一天。

关于python - 将字符串分成 block ,然后将这些 block 传递给一个新对象。 python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com