【问题标题】:How can i combine 2 text files but not overwriting whats on the 1st file? [closed]如何合并 2 个文本文件但不覆盖第一个文件的内容? [关闭]
【发布时间】:2020-03-31 19:32:42
【问题描述】:

例如在我拥有的一个文件上

a=红色

b=蓝色

c=绿色

我有第二个文件

a=黄色

b=粉红色

c=紫色

d=黑色

e=白色

如何在不手动搜索和复制粘贴 d 和 e 且不改变第一个文件上的 ABC 的情况下轻松地将 d 和 e 传输到第一个文件? ?

(在现实世界的场景中,会有数百个项目,而不是像这个例子那样只有 5 个)

我试图使用带有某种高级合并或查找和替换的记事本++,但这似乎不起作用。问了一圈,有人说是编程问题,不是简单的文字处理问题

【问题讨论】:

  • 请用您尝试过的代码更新您的问题。
  • 文件 1 和文件 2 也是按顺序排列的吗?即当我在文件 2 中找到不在文件 1 中的行时,我只需要将数据附加到文件 1 的末尾?
  • 使用fopen()append mode 打开文件1。现在以读取模式打开第二个文件 usign fopen()。读取第二个文件的内容并将其添加到第一个
  • @ChrisDoyle 不幸的是它们没有按顺序排列。有时第二个文件中的新项目列在中间,但它们可以放在第一个文件中的任何位置
  • 在这种情况下,@Błotosmętek 的回答应该适合你。

标签: javascript python php html


【解决方案1】:

一个 Python 解决方案,假设您的文件名为 1.txt2.txt

with open('1.txt', 'r') as f:
   d1 = dict( line.rstrip().split('=') for line in f )
with open('2.txt', 'r') as f:
   d2 = dict( line.rstrip().split('=') for line in f )
for k in d2:
    if k not in d1:
        d1[k] = d2[k]
with open('1.txt', 'w') as f:
    for t in d1.items():
        f.write('{}={}\n'.format(t))

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2019-12-12
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多