gpt4 book ai didi

python - python 根据特定的分隔符出现进行行分割

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:09 25 4
gpt4 key购买 nike

我有一个 txt 文件,我应该根据特定的分隔符模式对其进行拆分。

例如:

第一次分割应该在“”(或 chr(32))之后同一行中的第二个分割应该是“”(或两次 chr(32)),依此类推。

在我想要拆分的行的示例下方:

'2018-12-14 23:54:53,105 WARN  system.equipment - Timed AC is: 110.375\n'

我找到了模式,根据它,我想分割并将其设置为 ASCII 作为数组。尝试迭代进行分割,但没有 成功。感谢大家的帮助和时间!!!

delim_array = []
delim_array = [chr(32),chr(32),[chr(32)+chr(32)],[chr(32)+chr(45)+chr(32)]]
for j in delim_array:
part = re.split(j,datafile[1]) #datafile is my list to split
print (part)

我想将列表拆分为各部分之间的分隔符,是根据delim_array:

1)'2018-12-14

2)23:54:53,105

3)警告

4)系统.设备

5)定时AC为:110.375

但是获取列表,该列表仅由数组中的第一个分隔符分割。

最佳答案

你很接近。这个例子将满足您的需要。

import re

dd = '2018-12-14 23:54:53,105 WARN system.equipment - Timed AC is: 110.375\n'

delim_array = [chr(32),chr(32), chr(32)+chr(32), chr(32)+chr(45)+chr(32)]
part = []
for j in delim_array:
ap, dd = re.split(j, dd, maxsplit=1)
part.append(ap) #datafile is my list to split

part.append(dd.strip())
print(part)

这将打印:['2018-12-14', '23:54:53,105', 'WARN', 'system.equipment', 'Timed AC is: 110.375']

这里使用的关键部分re.split() maxsplit 等于 1 ( here the docs ),因此每次迭代都会将行分成两部分。第一部分是您要附加到 part 的内容列表,您保留的第二部分以供进一步拆分。因此,将第二部分重新赋值为保存字符串的同一变量(在我的示例中为 dd )。请记住在循环之后附加最后一个 dd获得,否则将会丢失(我还在这里删除了换行符)。

如果您有一个数据文件,则需要一个嵌套循环来执行此操作。当然,请确保所有行都遵循您发布的相同格式,否则您可能会得到意想不到的结果。

import re

delim_array = [chr(32),chr(32), chr(32)+chr(32), chr(32)+chr(45)+chr(32)]
with open("your_file_name.txt") as datafile:
for dd in datafile:
part = []
for j in delim_array:
ap, dd = re.split(j, dd, maxsplit=1)
part.append(ap) #datafile is my list to split

part.append(dd.strip())
print(part)

关于python - python 根据特定的分隔符出现进行行分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54536868/

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