Antonio
Antonio

Reputation: 186

Word processing text with python or macro word

I'm not a good programmer and I have to be honest in this case I can't find a comfortable solution.

I have a text file derived from the subtitles of a video and I would like to create a more convenient text file. I insert a gif here to show what I would like to do.

I created a macro with word office VB but it doesn't satisfy me.

Would you have any suggestions about it?

Simple Macro Word Office

Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.TypeBackspace
    Selection.TypeBackspace
    Selection.TypeText Text:=" "
End Sub

Simple text in:

a casa il curare la persona a casa
limita anche e razionalizza i costi
della sanità è il paziente e il nostro
familiare che ripeto come dicevo prima è
limitato nel suo corpo e del riciclo in
tutto l'amore di questo mondo quindi
questo è un qualcosa che noi perché per
noi deve diventare come dicevo prima un
obbligo uno stato non deve essere un
qualcosa che dobbiamo fare e siamo
obbligati a farlo chi è già sfortunato
ripeto da chi sicuramente non lo è deve
essere aiutato il tutti quanti modi
necessita per questo o per questa
problematica voi un'idea ce l'avete

Simple text out:

a casa il curare la persona a casa limita anche e razionalizza i costi della sanità è il paziente e il nostro familiare che ripeto come dicevo prima è limitato nel suo corpo e del riciclo in tutto l'amore di questo mondo quindi questo è un qualcosa che noi perché per noi deve diventare come dicevo prima un obbligo uno stato non deve essere un qualcosa che dobbiamo fare e siamo obbligati a farlo chi è già sfortunato ripeto da chi sicuramente non lo è deve essere aiutato il tutti quanti modi necessita per questo o per questa problematica voi un'idea ce l'avete

enter image description here

Upvotes: 0

Views: 201

Answers (1)

martineau
martineau

Reputation: 123501

Here's one way to do it:

  1. Read entire file into a list of lines with the newlines between them removed.
  2. Write a new file created by joining all those line into one long one separated by a space character.
with open("separate_lines.txt", "r") as file:
    lines = file.read().splitlines()

with open("merged_lines.txt", "w") as file:
    file.write(' '.join(lines) + '\n')

print('done')

Here's another, slightly more complicated, way that processes the file iteratively a line-at-a-time which eliminates needing to read the whole thing into memory at once:

with open("separate_lines.txt","r") as inp, open("merged_lines.txt","w") as outp:
    outp.write(next(inp).rstrip())  # Read and write first line.
    for line in inp:
        outp.write(' ' + line.rstrip())  # Write following lines prefixed with a space.
    outp.write('\n')  # End output file with a single newline.

print('done')

Upvotes: 1

Related Questions