перестановка корпуса текстового файла в Python - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть текстовый файл df.txt со следующими строками:

Это предложение 1

Это предложение 2

Это предложение 3

Это предложение 4

Это предложение 5

Это предложение 6

Я бы хотел получить другой текстовый файл как

Это предложение1 Это предложение 2

Это предложение 3 Это предложение 4

Это предложение 5 Это предложение 6

Я пытался:

import itertools
block = ''
with open('df.txt', 'r') as file:
    for i, value in enumerate(itertools.islice(file, 2)):
        block += value
print(block)

это не близко:

Это предложение 1

Это предложение 2

Я предполагаю, что подобный пост должен быть здесь, но я не смог найти.Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Это должно помочь.

Демонстрация:

lines = []
with open(filename) as infile:                          #Open file for read
    for num, line in enumerate(infile):                 #Iterate Each line
        if num % 2 == 0:                                #Pair lines
            lines.append(line.strip())
        else:
            lines[-1] = lines[-1] + "    " + line


#Write File
with open(filename1, "w") as outfile:
    for line in lines:
        outfile.write(line)

Вывод:

This is sentence 1    This is sentence 2
This is sentence 3    This is sentence 4
This is sentence 5    This is sentence 6

Использование itertools.islice

from itertools import islice

lines = []
with open(filename) as infile:
    while True:
        next_2_lines = list(islice(infile, 2))
        if not next_2_lines:
            break
        lines.append("\t".join(next_2_lines).replace("\n", "") )

#Write File
with open(filename1, "w") as outfile:
    for line in lines:
        outfile.write(line+"\n")
0 голосов
/ 27 сентября 2018

Попробуйте это:

block = ''
with open('df.txt', 'r') as file:
    lines = file.readlines()
    for i in range(len(lines),2):
        block += lines[0]+" "+lines[1]+"\n"

with open("output.txt", "r") as output_file:
    output_file.write(block)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...