为了账号安全,请及时绑定邮箱和手机立即绑定

如何部分读取文本文件并将其写入另一个文本文件

如何部分读取文本文件并将其写入另一个文本文件

慕斯709654 2021-10-10 14:30:31
我是新来的,有一个问题。我没有那么多关于编程的知识,因为我只是一个初学者,所以我想得到尽可能简单的答案。当然,我会尽力理解他们!英语也不是我的第一语言。为我糟糕的英语道歉。我想做的任务我有a.txt包含由以下描述的 100 行数据:import numpy as npb = np.arange(0.005, 0.05, 0.0001)c = np.arange(1.5, 2.51, 0.01)with open('a.txt','w') as f:    for a in range(1,101):        f.write('{:<3d} {:<3f} {:<3f}\n'.format(a,b[a-1],c[a-1]))a.txt 上的数据如下所示:1   0.005000 1.5000002   0.005100 1.5100003   0.005200 1.5200004   0.005300 1.5300005   0.005400 1.5400006   0.005500 1.5500007   0.005600 1.5600008   0.005700 1.570000....97  0.014600 2.46000098  0.014700 2.47000099  0.014800 2.480000100 0.014900 2.490000现在,我只想选择第 1 行到第 10 行的数据并将其写入另一个文本文件 b.txt。我怎样才能做到这一点?为简单起见,我现在正在处理一个非常小的文件,但我想在将来对一个非常大(如几 GB)的文本文件执行此任务,因此我想知道执行此任务的方式也可以用来处理大文件。如果有任何我没有显示但有必要的信息,请告诉我。我会尽快添加它。我很感激你的帮助和你的时间。谢谢你。※感谢所有编辑我帖子的人。它帮助并将帮助我改进我的帖子。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

首先,您只能得到n带有的第一行itertools.islice,然后写下这些行:


from itertools import islice


n = 10


with open('a.txt', 'r') as infile, open('b.txt', 'w') as outfile:

    first_lines = islice(infile, n)

    outfile.writelines(first_lines)


查看完整回答
反对 回复 2021-10-10
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我从Read large text files in Python, line by line without loading it in memory的接受答案中抓住了这个:


with open("log.txt") as infile:

    for line in infile:

        do_something_with(line)

现在,适用于您的具体问题:


def grab_lines(in_path, out_path, start, end):

    with open(out_path, "w") as outfile:

        counter = -1

        with open(in_path) as infile:

            for line in infile:

                counter += 1

                if counter < start:

                    continue

                elif start <= counter <= end:

                    outfile.write(line)

                else:

                    return

希望这可以帮助!


查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信