question about splitting a large file

前端 未结 4 596
醉话见心
醉话见心 2021-01-26 05:37

Hey I need to split a large file in python into smaller files that contain only specific lines. How do I do this?

4条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-26 06:29

    Do you mean breaking it down into subsections? Like if I had a file with chapter 1, chapter 2, and chapter 3, you want it to be broken down into separate files for each chapter?


    The way I've done this is similar to Wilduck's response, but closes the input file as soon as it reads in the data and keeps all the lines read in.

    data_file = open('large_file_name', 'r')
    lines = data_file.readlines()
    data_file.close()
    
    outputFile = open('output_file_one', 'w')
    for line in lines:
        if 'SomeName' in line:
            outputFile.write(line)
    
    outputFile.close()
    

    If you wanted to have more than one output file you could either add more loops or open more than one outputFile at a time.

    I'd recommend using Wilducks response, however, as it uses less space and will take less time with larger files since the file is read only once.

提交回复
热议问题