Python Forum
Split Characters As Lines in File
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Split Characters As Lines in File
#1
Hello,
I have this txt file. (The length is 15000)
1010100101010110000000000001111111111
And according to input, I want to separate my numbers as different lines and each line will have equal size
For instance, suppose that i is the input and i =10
then my text file will become like that:
1010100101
0101011000
0000000000...

The code should be something like that
with open("names.txt","r") as f:
    input_list = f.read()    

def write_len(input_list):
    final_str = "\n".join([str(len(item)) for item in input_list])

    with open("name_length.txt","w") as w:
        w.write(final_str)

    return 1
But I couldn't complete it
Can you please help me?
Best
Reply
#2
You could loop over every character in the string, assembling them into strings of the proper length.

Or you could slice it into sections of the proper length.

k = 10
sections = [input_list[i:i+k] for i in range(0, len(input_list), k)]
Then you can join() the sections or print them or whatever you want with them.
Reply
#3
There is built-in module textwrap:

>>> import textwrap
>>> s = '1010100101010110000000000001111111111'
>>> print('\n'.join(textwrap.wrap(s, width=10)))
1010100101
0101100000
0000000111
1111111
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#4
(Dec-28-2020, 04:48 AM)perfringo Wrote: There is built-in module textwrap:

>>> import textwrap
>>> s = '1010100101010110000000000001111111111'
>>> print('\n'.join(textwrap.wrap(s, width=10)))
1010100101
0101100000
0000000111
1111111

Many thank to both of you
here is my final code
import itertools
import random
from collections import defaultdict
import pprint
import fileinput
import textwrap

with open("line500_.txt","r") as f:
    input_list = f.read()    
 
k = 10
#sections = [input_list[i:i+k] for i in range(0, len(input_list), k)]
#final_str = "\n".join([str(len(item)) for item in input_list])
#final = "\n".join(str(sections))
 
twrap =  '\n'.join(textwrap.wrap(input_list, width=10))
print(twrap)   

myfile =  open("name_length.txt","w")
with open("name_length.txt","w") as w:
    w.write(str(twrap))
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [split] How to convert the CSV text file into a txt file Pinto94 5 270 Dec-23-2020, 08:04 AM
Last Post: ndc85430
  Find lines from one file in another tester_V 8 510 Nov-15-2020, 03:29 AM
Last Post: tester_V
  get two characters, count and print from a .txt file Pleiades 9 638 Oct-05-2020, 09:22 AM
Last Post: perfringo
  How to split and combine embedded lines using less code pjfarley3 6 433 Aug-13-2020, 09:13 PM
Last Post: pjfarley3
  Iterate 2 large text files across lines and replace lines in second file medatib531 13 909 Aug-10-2020, 11:01 PM
Last Post: medatib531
  Reading integers from a file; the problem may be the newline characters JRWoodwardMSW 2 481 Jul-14-2020, 02:27 AM
Last Post: bowlofred
  Collect lines in a file sridhar 3 442 Jul-12-2020, 04:06 PM
Last Post: sridhar
  Remove escape characters / Unicode characters from string DreamingInsanity 5 1,560 May-15-2020, 01:37 PM
Last Post: snippsat
  Split and sort input file aawaleh 4 723 Apr-10-2020, 09:59 PM
Last Post: aawaleh
  Can't seem to figure out how to delete several lines from a text file Cosmosso 9 1,092 Dec-10-2019, 11:09 PM
Last Post: Cosmosso

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020