【问题标题】:Python - Combine files/Merge filesPython - 合并文件/合并文件
【发布时间】:2023-03-20 00:52:01
【问题描述】:

希望您能提供帮助。我持有 2 个 .txt 文件。下面的例子

  • .txt1

  • 99 1/1/2013 05:10 伦敦(英国/英国)gb 椭圆形 1800 2/4/2013
  • 70 1/10/1971 21:00 普雷斯顿(英国/英格兰)GB 磁盘 180 12/19/2003
  • 6 1/10/1998 18:00 伦敦(英国/英国)gb circle 240 9/29/2004
  • 84 1/10/2002 17:25 nottingham (uk/england) gb circle 3 1/29/2002

.txt2

  • 6“djfdjf”
  • 84 "gfgrtret"
  • 99 "hytyteghej"
  • 70 "yjtytyuytjyj"

需要输出

  • 99 1/1/2013 05:10 伦敦(英国/英国)gb 椭圆形 1800 2/4/2013 hytyteghej
  • 70 1/10/1971 21:00 普雷斯顿(英国/英格兰)GB 磁盘 180 12/19/2003 yjtytyuytjyj
  • 6 1/10/1998 18:00 伦敦(英国/英格兰)gb circle 240 9/29/2004 djfdjf
  • 84 1/10/2002 17:25 nottingham (uk/england) gb circle 3 1/29/2002 gfgrtret

如您所见,它们没有按数字顺序排序。但是我被告知可以“定义”它们,并且可以将 .txt2 添加到 .txt2 中每一行的末尾。

任何人都可以协助我执行此操作所需的代码吗?

忽略要点

我的代码已经可以满足我的需求,但是目前这似乎超出了我的范围。

【问题讨论】:

  • 1.加载两者。 2. 将第二个文件转换为字典。 3. 将字典中的值通过键(行中的第一个元素)附加到第一个文件。

标签: python file merge line


【解决方案1】:

这对你来说足够了吗? 为了简单起见,我使用了 pandas,但你可以避免它。 我更改了行的顺序,但必须有一种简单的方法来避免它,以防出现问题。

import pandas as pd

data1 = pd.read_csv('text1.txt', sep=" ", index_col=0, header=None)
data2 = pd.read_csv('text2.txt', sep=" ", index_col=0, header=None)

result = pd.concat([data1, data2], axis=1, sort=True)

result.to_csv(r'out.txt', header=None,  sep=' ', mode='a')

它们按索引排序

【讨论】:

  • 感谢您的回答。我通常尽量避免导入 panda 和 numpy。我可以确认这在没有 numpy 的情况下不起作用(根据例外情况)
猜你喜欢
  • 2020-09-03
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2014-12-02
  • 1970-01-01
相关资源
最近更新 更多