python - 在 Python 中反转文件中的一列文本

标签 python

我正在编写一个程序来重新格式化一个文本文件。旧文件包含几列文本,如下所示。

Take
3
29
1001 83.489601 279.859650 1.000000
1002 83.489594 271.848480 0.997735
1003 83.489594 263.837311 0.997337
1004 83.489594 256.076111 0.996816
1005 83.364594 248.189941 0.995626
1006 83.364594 240.178787 0.994840   

我的程序当前以我想要的格式将其写入新文件,并添加了一些行。然后它看起来像这样:

clip
Values 12
trick, pos, ypos, similarity
1001 83.489601 279.859650 1.000000
1002 83.489594 271.848480 0.997735
1003 83.489594 263.837311 0.997337
1004 83.489594 256.076111 0.996816
1005 83.364594 248.189941 0.995626
1006 83.364594 240.178787 0.994840

我现在需要做的是颠倒新文件第三列数字的垂直顺序。它最终应该看起来像这样:

clip
Values 12
trick, pos, ypos, similarity
1001 83.489601 240.178787 1.000000
1002 83.489594 248.189941 0.997735
1003 83.489594 256.076111 0.997337
1004 83.489594 263.837311 0.996816
1005 83.364594 271.848480 0.995626
1006 83.364594 279.859650 0.994840

我可以一次一行地拆分第三组数字,但无法弄清楚我应该如何将该列写回到正确的位置。文件中有多个这样的 block ,它们的长度各不相同。我只需要一个开始工作的方向,因为我现在完全迷路了。我应该寻找什么样的功能来帮助我实现这一目标?任何帮助,将不胜感激。我是编码新手,正在使用 Python 3.2.2

最佳答案

步骤是:

  • 读入每一行,将其分成字段
  • 将结果累加到列表列表中
  • 使用zip(*t)转置数组
  • 选择适当的行(以前是列),然后使用 list.reverse
  • 转回列格式
  • 将行写入磁盘

这是一个例子:

 >>> s = '''\
 1001 83.489601 279.859650 1.000000
 1002 83.489594 271.848480 0.997735
 1003 83.489594 263.837311 0.997337
 1004 83.489594 256.076111 0.996816
 1005 83.364594 248.189941 0.995626
 1006 83.364594 240.178787 0.994840
 '''.splitlines()
 >>> result = []
 >>> for line in s:
         result.append(line.split())


 >>> t = zip(*result)
 >>> t[2] = t[2][::-1]
 >>> result = zip(*t)
 >>> for row in result:
         print ' '.join(row)


 1001 83.489601 240.178787 1.000000
 1002 83.489594 248.189941 0.997735
 1003 83.489594 256.076111 0.997337
 1004 83.489594 263.837311 0.996816
 1005 83.364594 271.848480 0.995626
 1006 83.364594 279.859650 0.994840

关于python - 在 Python 中反转文件中的一列文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454507/

相关文章:

python - 使用soaplib生成的错误(?)数据类型

单行上的python正则表达式语句

python - 是根算法

python - 如何生成授权请求头?

python - Django OAuth 工具包 - 注册用户

python - 如何提取数据集中一分钟的每个数据点?

python - 在返回几列的应用上使用 Dask(DataFrame 等)

基于 Python 规则的引擎

python - 从单个 json 对象加载数据帧

java - csv 行放入单独的 txt 文件中?