使用 python 或宏字的文字处理文本

Word processing text with python or macro word

我不是一个好的程序员,老实说,在这种情况下我找不到合适的解决方案。

我有一个源自视频字幕的文本文件,我想创建一个更方便的文本文件。我在这里插入一个 gif 来显示我想做什么。

我用 word office 创建了一个宏 VB 但它并不令我满意。

您对此有什么建议吗?

简单宏 Word Office

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

简单文本:

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

简单的文本输出:

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

这是一种方法:

  1. 将整个文件读入行列表,并删除行之间的换行符。
  2. 写一个新文件,通过将所有这些行连接成一个由 space 字符分隔的长行。
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')

这是另一种稍微复杂一点的方法,它一次一行地迭代处理文件,这样就无需一次将整个文件读入内存:

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')