Home > Enterprise >  Split raw data in python
Split raw data in python

Time:06-16

I want to cut the raw data from txt file by python. The raw data like this:

-0.156 200

-0.157 300

-0.158 400

-0.156 201

-0.157 305

-0.158 403

-0.156 199

-0.157 308

-0.158 401

I expect to extract the file to many txt file like this.

-0.156 200

-0.157 300

-0.158 400

-0.156 201

-0.157 305

-0.158 403

-0.156 199

-0.157 308

-0.158 401

Would you please help me?

CodePudding user response:

This splits the data into files with three entries in each file

READ_FROM = 'my_file.txt'

ENTRIES_PER_FILE = 3

with open(READ_FROM) as f:
    data = f.read().splitlines()
    i = 1
    n = 1
    for line in data:
        with open(f'new_file_{n}.txt', 'a') as g:
            g.write(line   '\n')
            i  = 1
        if i > ENTRIES_PER_FILE:
            i = 1
            n  = 1

new_file_1.txt

-0.156 200
-0.157 300
-0.158 400

new_file_2.txt

-0.156 201
-0.157 305
-0.158 403

new_file_3.txt

-0.156 199
-0.157 308
-0.158 401

CodePudding user response:

If you have spaces between your lines and you want spaces between your lines in your new file this will work:

with open('path/to/file.txt', 'r') as file:
    lines = file.readlines()
cleaned_lines = [line.strip() for line in lines if len(line.strip()) > 0]
num_lines_per_file = 3
for num in range(0, len(cleaned_lines), num_lines_per_file):
    with open(f'{num}.txt', 'w') as out_file:
        for line in cleaned_lines[num:num   num_lines_per_file]:
            out_file.write(f'{line}\n\n')
  • Related