根据分隔符 python 的特定精度进行行拆分



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

例如:

第一次拆分应该在 " " 之后(或 chr(32((同一行中的第二次拆分应为 "(或两次 chr(32((,依此类推。

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

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

我找到了模式,并根据它,我想拆分并将其设置为 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(定时交流为:110.375

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

你很接近。此示例将执行您需要的操作。

import re
dd = '2018-12-14 23:54:53,105 WARN  system.equipment - Timed AC is: 110.375n'
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(这里是文档(,所以每次迭代你把你的行分成两部分。第一部分是您要附加到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)

最新更新