首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将文件的某些部分“移动”到另一个文件。

将文件的某些部分“移动”到另一个文件。
EN

Stack Overflow用户
提问于 2016-03-01 06:36:38
回答 1查看 225关注 0票数 0

假设我有一个48,222行的文件。然后我给出一个指标值,比如说,21,000。

在Python中是否有任何方法“移动”从索引21,000开始的文件的内容,以便现在我有两个文件:原始文件和新文件。但原来的有21,000行,新的有27,222行。

我阅读了这个使用分区的post,并非常详细地描述了我想要的内容:

代码语言:javascript
代码运行次数:0
运行
复制
with open("inputfile") as f:
    contents1, sentinel, contents2 = f.read().partition("Sentinel text\n")
with open("outputfile1", "w") as f:
    f.write(contents1)
with open("outputfile2", "w") as f:
    f.write(contents2)

除了(1)它使用“哨兵文本”作为分隔符之外,(2)它创建了两个新文件并要求我删除旧文件。到目前为止,我的做法是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
for r in result.keys(): #the filenames are in my dictionary, don't bother that
    f = open(r)
    lines = f.readlines()
    f.close()
    with open("outputfile1.txt", "w") as fn:
        for line in lines[0:21000]:
            #write each line
    with open("outputfile2.txt", "w") as fn:
        for line in lines[21000:]:
            #write each line                   

这是一项相当手工的工作。有没有一个内置的或更有效的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 07:15:30

您还可以使用写线(),并将从0到20999的行切片列表转储到一个文件中,将另一个从21000到末尾的切片列表转储到另一个文件中。

代码语言:javascript
代码运行次数:0
运行
复制
   with open("inputfile") as f:
        content = f.readlines()
        content1 = content[:21000]
        content2 = content[21000:]
        with open("outputfile1.txt", "w") as fn1:
            fn1.writelines(content1)

        with open('outputfile2.txt','w') as fn2:
            fn2.writelines(content2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35716223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档