首页 > 解决方案 > 在特定行中拆分文本文件并保存输出

问题描述

hii 专家我有一个长文本文件,其中包含如下数据

1
2
3
4
5
6
7

我想在特定列索引处拆分文件并将拆分后的输出并排粘贴。所以我的预期输出是

1  5
2  6
3  7
4

任何人都可以在 python 中提出一个解决方案。谢谢。

标签: pythonpandasnumpyfor-loop

解决方案


假设您的输入存储在一个名为的列表中x,并且您希望在索引处拆分idx

import numpy as np

# Split into two lists
x1, x2 = x[:idx], x[idx:]

# Get their lengths and determine maximum length
l1, l2 = len(x1), len(x2)
max_l = max(l1, l2)

# Lists have to be of equal length. Fill with empty strings
x1 += [''] * (max_l - l1)
x2 += [''] * (max_l - l2)

# Combine lists again
y = np.dstack([x1, x2])[0]

对于您的示例,请尝试使用

x = [1, 2, 3, 4, 5, 6, 7]
idx = 4

结果是

[['0', '5'], ['1', '6'], ['2', '7'],  ['3', ''],  ['4', '']]

例如,您可以通过以下方式打印它

print('\n'.join([' '.join(y_) for y_ in y]))

但也可以对条目进行 for 循环。
您可以通过以下方式保存输出:

np.savetxt('out.dat', y, fmt='%s')

我确信有更简单的方法可以做到这一点,但这似乎很容易理解。


推荐阅读