首页 > 解决方案 > 在python中读取文件并将输出写入不同的文件

问题描述

我有一个 test.txt 文件如下:

qwerty1

qwerty2

qwerty3

我想要输出如下:

test1.txt will contain: qwerty1

test2.txt will contain: qwerty2

test3.txt will contain: qwerty3

更新的问题:

我有以下文件 md5_list.txt ,其中包含:

1cd2612d20bb729bbb337c75334d082f 377c247fe09fdee4e0d6b4866b943f5b 496ea3b6af0a019ece98382c6f6706ae 50f8d739de466eb38e792fd21a0372f7 53a59d4834b152bb4586e440acbe717d 639efc02c91bdd97576fa622da9b0f13 642323e61d5410ef8492dbaffff1679f 69c526c319263a6f18a989b1d4d20bde 75540fd68c905f596d780515c09c037c 7dcf7ea900e0a6d8750f23ee3835d4c7 7ffd2d935ba9d7f8e2977526cc3390cb 8701a1900489b790a3b6399196656b97 8bae8f92a05821b285e662a16d631588 9840a295bf4845d05eade40bf25b9520 a0e7b1b87fe47badc309feb809b37223 b3d86d9cc68eb882b54ec19d52eda55e b83fe468d19320f6d43d1b41618c4c0c bc3ff4638aacd177ccabeccf2d356f0b c919e36b85be14d882c2a044a0cdc060

19efb22e9e029d55bf072d422586aeda 1a8548465aed313bb​​45574819753b7d7 23f68ef1abecdce9ea2ce2b24f5574d6 6fee2f31e02e6803c22d1da7fc12882d 75f9066b228c759d32d18b35bd6969e1 7cd610fa3eac844daa57354ee417ccb8 aab1ea896d1abfa200c4b8c6ada9184f acfa5231fea51b63704d4c861378bae4 b168c6339bb73ec802353d97278f6cd0 baa25de96c40fa467c8dc2019fcaa0df

02ecbbdd0b0d40c6700ee775c141e81a 04bc65050ec685dcc1fe71bc4484dcfd 0665621dc90b37ee5b56c413a0bd9cb0 087835049c74b49d6149cfdb9e4a1de0 0a7bae9e445c5ee662b0be7cd44517c1 0bf40bcf849faad316630eabda585769 11ac5f191063c08383c04bdf3d128282 124426002281d79d859a977187442cff 24777b8f91beabf780d41f73d7246fb7 24e4d9c696787ba913ca4f35a8cdc0d7 2a303cffbdf936c63a875780b64124c3 2dc29d160012134c6d5c885f4c39cee6 33ba3a1455867bcfcf6bd86c5b3260a5 346369e79b9e9ab64eb940b274a3eece 5a3de9157fe4284e522e7afce0e15b76 5a8c3c95773c08d74f94c5aed6f65e0e 63f5fad74b84ccd2d8469b57f053f84b 6798d8a8e86e256cb1976d034e688284 6f202d116530a3d9f4d2dc8cc8ca0abf 80d40818c4165dcdb2016a273588a53f 81f6ec57a6647e8416a256a4b4072d3e a2f07f4ec811373a9c91a46716864c5c a5627067aa87ebf3696302f033ccdf08 af4726df4de56b390ea1d5525b1463d1 b38cda28f53f5dc1965e57668e9eca52 bb7eb37fe44f0ac5954202668f5c9515 bc7fc16a7cf2b932cd1fa81b80c8dc55 d1d6c50ce9ad675f8b53fcd325dd4c04 da5587214697c7b879f8ed8bb48213c3 dad8b39ff8960896d6f8a26d37eb15ff

现在我想在三个名为 md5_list1、md5_list2、md5_list3 的单独文件中获取数据。

所需输出:

在 md5_list1.txt :

1cd2612d20bb729bbb337c75334d082f 377c247fe09fdee4e0d6b4866b943f5b 496ea3b6af0a019ece98382c6f6706ae 50f8d739de466eb38e792fd21a0372f7 53a59d4834b152bb4586e440acbe717d 639efc02c91bdd97576fa622da9b0f13 642323e61d5410ef8492dbaffff1679f 69c526c319263a6f18a989b1d4d20bde 75540fd68c905f596d780515c09c037c 7dcf7ea900e0a6d8750f23ee3835d4c7 7ffd2d935ba9d7f8e2977526cc3390cb 8701a1900489b790a3b6399196656b97 8bae8f92a05821b285e662a16d631588 9840a295bf4845d05eade40bf25b9520 a0e7b1b87fe47badc309feb809b37223 b3d86d9cc68eb882b54ec19d52eda55e b83fe468d19320f6d43d1b41618c4c0c bc3ff4638aacd177ccabeccf2d356f0b c919e36b85be14d882c2a044a0cdc060

在 md5_list2.txt :

19efb22e9e029d55bf072d422586aeda 1a8548465aed313bb​​45574819753b7d7 23f68ef1abecdce9ea2ce2b24f5574d6 6fee2f31e02e6803c22d1da7fc12882d 75f9066b228c759d32d18b35bd6969e1 7cd610fa3eac844daa57354ee417ccb8 aab1ea896d1abfa200c4b8c6ada9184f acfa5231fea51b63704d4c861378bae4 b168c6339bb73ec802353d97278f6cd0 baa25de96c40fa467c8dc2019fcaa0df

在 md5_list3.txt :

02ecbbdd0b0d40c6700ee775c141e81a 04bc65050ec685dcc1fe71bc4484dcfd 0665621dc90b37ee5b56c413a0bd9cb0 087835049c74b49d6149cfdb9e4a1de0 0a7bae9e445c5ee662b0be7cd44517c1 0bf40bcf849faad316630eabda585769 11ac5f191063c08383c04bdf3d128282 124426002281d79d859a977187442cff 24777b8f91beabf780d41f73d7246fb7 24e4d9c696787ba913ca4f35a8cdc0d7 2a303cffbdf936c63a875780b64124c3 2dc29d160012134c6d5c885f4c39cee6 33ba3a1455867bcfcf6bd86c5b3260a5 346369e79b9e9ab64eb940b274a3eece 5a3de9157fe4284e522e7afce0e15b76 5a8c3c95773c08d74f94c5aed6f65e0e 63f5fad74b84ccd2d8469b57f053f84b 6798d8a8e86e256cb1976d034e688284 6f202d116530a3d9f4d2dc8cc8ca0abf 80d40818c4165dcdb2016a273588a53f 81f6ec57a6647e8416a256a4b4072d3e a2f07f4ec811373a9c91a46716864c5c a5627067aa87ebf3696302f033ccdf08 af4726df4de56b390ea1d5525b1463d1 b38cda28f53f5dc1965e57668e9eca52 bb7eb37fe44f0ac5954202668f5c9515 bc7fc16a7cf2b932cd1fa81b80c8dc55 d1d6c50ce9ad675f8b53fcd325dd4c04 da5587214697c7b879f8ed8bb48213c3 dad8b39ff8960896d6f8a26d37eb15ff


for num in range(0,no_of_files) :
        with open('md5_list.txt','r') as file:
            data = file.readlines()
            for i in data:
                if not i.startswith('\n'):
                    with open('md5_list'+str(num+1)+'.txt','a+') as finalfile:
                        finalfile.write(i)
                else:
                    break

它正在创建文件,唯一的问题是只有第一个数据块被写入每个文件。

标签: python

解决方案


以读取模式打开文件读取行检查行是否不是换行符然后写入新文件。

with open("test.txt", "r") as testfile:
    i = 1
    for line in testfile:
        if line != "\n":
            with open("test{}.txt".format(i), "w+") as newfile:
                newfile.write(line)
            i += 1

更新:

with open("test.txt", "r") as testfile:
    i = 1
    for line in testfile:
        if line == "\n":
            i += 1
        else:
            with open("test{}.txt".format(i), "a") as newfile:
                newfile.writelines(line)

推荐阅读