将文件的文本插入特定行的另一个文件中

时间:2016-02-24 07:04:05

标签: python

我有两个文本文件test1.txttest2.txt。我希望能够阅读test1.txt内容并将其写入特定行的text2.txt

我已经能够阅读test1.txt的内容并将其写入空白test2.txt

现在我想更改我的代码以阅读test1.txt的上下文并将其写入非空text2.txt

with open("/test1.txt") as f:
    lines = f.readlines()

with open("/test2.txt", "w") as f1:
    f1.writelines(lines)

如何在第20行将test1.txt的内容插入test2.txt

4 个答案:

答案 0 :(得分:2)

简单但有点内存密集型:

# insert contents of "/test1.txt" into "/test2.txt" at line 20
with open("/test1.txt", "r") as f1:
    t1 = f1.readlines()
with open("/test2.txt", "r") as f2:
    t2 = f2.readlines()
t2.insert(20, t1)
with open("/test2.txt", "w") as f2:
    f2.writelines(t2)

最大限度地减少内存使用和磁盘写入,但稍微复杂一些:

# insert contents of "/test1.txt" into "/test2.txt" at line 20
with open("/test2.txt", "rw+") as f2:
    for x in range(20):
        f2.readline()   # skip past early lines
    pos = f2.tell() # remember insertion position
    f2_remainder = f2.read()    # cache the rest of f2
    f2.seek(pos)
    with open("/test1.txt", "r") as f1:
        f2.write(f1.read())
    f2.write(f2_remainder)

我没有测试其中任何一种,但它们应该可以帮到你。

答案 1 :(得分:0)

此问题可能有多种解决方案。一种可能的解决方案是。

  1. 打开file1并将内容读入列表
  2. 打开file2并将内容读取到另一个列表
  3. 在文件2中的所需位置添加file1的内容。
  4. 将内容写回file2中的第二个列表。

答案 2 :(得分:0)

试试这个,如果你想在特定的一行写一个文件的数据,那么试试这个

openssl s_client -connect some.host:443 | openssl x509 -pubkey -noout

答案 3 :(得分:0)

我能够使用以下方法从1个文件中获取数据并将其附加到特定行的另一个文件中:

Appending Data In a Specific Line of Text in a File Python