gpt4 book ai didi

python - 将文本转换为列

转载 作者:行者123 更新时间:2023-11-30 23:07:21 25 4
gpt4 key购买 nike

我有一个格式奇怪的文本文件,您可以看到标题和列不包含单个列,但列可能包含一些空格。

原始文件示例:

    Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
1.2.3.4 17622 5.6.7.8 15932 0xEE531C47 ITU-T G.711 PCMU 60962 2 (0.0%) 106.78 8.55 0.34 X

将此文本转换为数组的最有效方法是什么:

['1.2.3.4','17622','5.6.7.8','15932','0xEE531C47','ITU-T G.711 PCMU','60962','2 (0.0%)','106.78','8.55','0.34','X']
  • 第 1-5 列是 1 比 1。
  • 第 6 列可能包含 3 个标记。
  • 第 7 列为 1 比 1
  • 第 8 列包含 2 个标记。
  • 第 9-12 列为 1 比 1。

最佳答案

这可能比正则表达式解决方案更有效,但正则表达式可以进行更好的解析。

line = '1.2.3.4 17622  5.6.7.8 15932 0xEE531C47 ITU-T G.711 PCMU 60962     2 (0.0%)          106.78            8.55            0.34 X'

parts = line.split()
# Make it readable
maxtokens = 15
numcols = 12
col6 = 5

# Get number of tokens for column 6
idx = col6 + len(parts) - maxtokens + 3

# Build the list
a = [p for p in parts[:col6]] # Cols 1-5
a.append(' '.join(parts[col6:idx])) # Col 6
a.extend(parts[idx:idx+1]) # Col 7
a.append(' '.join(parts[idx+1:idx+3])) # Col 8
a.extend([p for p in parts[idx+3:]]) # Cols 9-12
print(a)

输出:

['1.2.3.4', '17622', '5.6.7.8', '15932', '0xEE531C47', 'ITU-T G.711 PCMU', '60962', '2 (0.0%)', '106.78', '8.55', '0.34', 'X']

关于python - 将文本转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32261759/

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