我正在尝试操作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来自纯文本文件,其中每行新行都有时间戳记的生物识别数据,每个文本文件都是一个参与者,我需要将所有行合并到熊猫数据框中的一行中,并且可能一次需要处理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 split()
和strip()
可以完美地工作:
尝试: